Я решил это, удалив XAMPP и установив WAMP. Спасибо за помощь.
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
в приведенной выше строке
У вас возникли проблемы с получением результата, потому что вы запускаете программу из оконной среды, и окно закрывается, как только выполняются внутренние задачи. Если вы запустили скомпилированную программу из командной строки в уже существующем окне оболочки (Linux, Mac или Windows), результаты останутся на экране после того, как вы вернетесь в приглашение (если только вы не закончили выполнение четкий экран). Более того, в этом случае вам не нужен посторонний вызов getchar ().
Для Windows после открытия окна командной строки вы должны выпустить команду «cd» для изменения в каталоге который содержит скомпилированную программу, а затем введите его имя. Для Linux (и, я полагаю, Mac, поскольку Mac является UNIX под капотом), вам нужно будет ввести ./ перед именем программы после перехода в соответствующий каталог с «cd».