scanf("%d",&age);
Когда выполнение программы достигает указанной выше строки, вы вводите целое число и нажимаете клавишу ввода. Целое число занято scanf
, а символ \n
(символ новой строки или Enter), который вы нажали, остается в stdin
, который занят getchar()
. Чтобы избавиться от него, замените ваш scanf
с
scanf("%d%*c",&age);
%*c
сообщает %*c
сканировать символ, а затем отбрасывает его. В вашем случае %*c
читает символ новой строки и отбрасывает его.
] Другим способом было бы сбросить stdin
, используя следующее после scanf
в вашем коде:
while ( (c = getchar()) != '\n' && c != EOF );
Обратите внимание, что c
является int
в приведенной выше строке