Я новичок в языке C и изучаю его по книге Кима Н. Кинга. В нем говорится, что scanf()
ищет числовой шаблон, игнорируя пробелы, но я думаю, что он также пропускает клавишу Enter. Хотя, если он ищет символы, он, очевидно, также использует пробелы.
Поэтому в этом примере кода я должен использовать getchar()
для очистки потока перед вторым scanf()
, иначе второй будет выполнен без ожидания ввода пользователя.
printf("Enter a char: ");
scanf("%c", &ch1);
getchar();
printf("\nEnter another char: ");
scanf("%c", &ch2);
Если вместо этого я ищу цифры, у меня нет проблем.
printf("Enter a number: ");
scanf("%d", &n1);
printf("\nEnter another number: ");
scanf("%d", &n2);
Верно ли мое предположение (пропускается клавиша Enter)?
isspace
ищет пробелы, то есть новые строки, возвраты каретки, переводы строк, вертикальные/горизонтальные табуляции и одиночные пробелы (возможно, я что-то забыл). - person cadaniluk   schedule 26.06.2016