Scanf рассматривает нажатие клавиши enter как дополнительный символ, который не равен 'y' - C (СИ)
Формулировка задачи:
Вот маленькая, но настойчивая программка, которая не успокаивается, пока не скажите "да" (y):
Вопрос состоит в том, что строчка Enter answer выводится дважды. Я так понимаю, это связано с тем, что scanf рассматривает нажатие клавиши enter как дополнительный символ, который не равен 'y'. Но как сделать правильно? (Если использовать потоковый ввод, с cin и cout, такой проблемы не возникает.)
#include <stdio.h>
int main()
{
char ans;
do {
printf("Enter answer: \n");
scanf("%c", &ans);
} while (ans != 'y');
return 0;
}Решение задачи: «Scanf рассматривает нажатие клавиши enter как дополнительный символ, который не равен 'y'»
textual
Листинг программы
scanf("%c",&ans)