Scanf рассматривает нажатие клавиши enter как дополнительный символ, который не равен 'y' - C (СИ)

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Scanf рассматривает нажатие клавиши enter как дополнительный символ, который не равен 'y'»

textual
Листинг программы
scanf("%c",&ans)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы