Я не могу воспроизвести вашу проблему с помощью GCC в системе Mac OS X. Возможно, вы используете систему Windows, в которой нажатие ENTER
может привести к CR
и LF
?
В любом случае, обратите внимание, что getchar()
обычно не возвращается сразу после нажатия одной клавиши, потому что по умолчанию в большинстве систем stdin
имеет линейную буферизацию , то есть подсистема терминала не будет доставлять любые символы пользовательского процесса, пока не будет нажата ENTER
.
getchar()
не заменяет старые функции DOS <conio.h>
, такие как getch()
.
Обойти это зависит от того, на каком O / S вы находитесь.