Я действительно запутался в использовании getchar()
и scanf()
. В чем разница между этими двумя?
Я знаю, что scanf()
[и семья] получают посимвольно от пользователя [или файла] и сохраняют в переменную, но делает ли это сразу или после нажатия чего-либо (Enter
)?
и я действительно не понимаю этот код, я видел много фрагментов кода, использующих getchar()
, и все они позволяют вам печатать на экране все, что вы хотите, и никакого ответа не происходит, но когда вы нажимаете enter
, он закрывается.
int j, ch;
printf("please enter a number : \n");
while (scanf("%i", &j) != 1) {
while((ch = getchar()) != '\n') ;
printf("enter an integer: ");
}
Здесь, в этом коде, я не могу использовать scanf()
, чтобы получить символ за символом и проверить его? Кроме того, что означает эта строка?
scanf("%i", &j) != 1
потому что, когда я нажал 1, это не изменилось, когда я нажал 2? что делает эта штука?
а когда эта строчка будет?
printf("enter an integer: ");
потому что этого никогда не бывает.