#include <stdio.h>
int main() {
int c;
while ((c = getchar()) != EOF) {
putchar(c);
}
}
Это прекрасно работает, когда EOF (Ctrl + Z) находится в новой строке, но когда вход является:
блабла^г
он не работает. Когда я отлаживаю программу, он сообщает мне, что вход «^ z» (^ z = EOF) сохраняется как 26,
, но когда вход^z находится в новой строке, он сохраняется как -1. Почему?
в случае, если что-то неясно:
он сохраняется в переменной с, а не работа означает, что оно не прекращает время цикла, только тогда, когда вход^г помещается в новую строку он tearminates петлю
им с помощью windowsGetChar и EOF C программирование
Вы забыли '#include' в своем коде. Ваш вопрос, вероятно, зависит от операционной системы. В моей Linux-системе CtrlZ не имеет отношения к EOF. –
Попробуйте подключить файл. Терминалы ведут себя иногда странно из-за буферизации строк. – Olaf
"не работает" нет ** специфический ** описание проблемы. Также не понятен «вход^z сохранен как 26». Где он спасен? Какой вход? – Olaf