CherryDt уже предоставил соответствующий ответ.
Но просто добавим к этому, EOF - это не символ , а конечное условие . Это может зависеть от ОС. Вы не можете полагаться на то, что он будет работать одинаково в любой среде. Я предлагаю использовать любой символ как условие для завершения l oop, а не условие, зависящее от среды.
ПРИМЕЧАНИЕ : решение сработало для завершения программы с ключами, сработало для меня Windows, только когда я включил fflush(stdin);
после getchar()
. Вероятно, getchar()
принимает введенные вами данные и оставляет символ новой строки \n
во входном потоке, который вызывал проблему, когда я пытался завершить работу, используя ctrl + D или ctrl + Z или F6 .
Но как только вы включите fflush(stdin)
, это решит проблему, и теперь программа успешно завершается, когда я использую F6 на Windows. Вы также можете попробовать использовать вышеупомянутые ключи, если это не работает для вас.
Надеюсь, это поможет некоторым Windows пользователям, если приведенный выше ответ не сработал для них.