k & R, как getchar читает EOF - PullRequest
       14

k & R, как getchar читает EOF

5 голосов
/ 29 марта 2011

во время чтения из k & r я наткнулся на следующий пример

#include<stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF)
{
    putchar(c);
}
printf("hello");
}

сомнение 1: когда я набираю символ ctrl + z (EOF на моем sys). о / п привет
но когда я набираю строку символов, таких как abcdef ^ Zghijk
o / p is abcdef -> (включая стрелку) и ожидает, когда пользователь введет i / p вместо завершения цикла и напечатает hello ..

1 Ответ

5 голосов
/ 29 марта 2011

ctrl+z - это не EOF, это просто способ сообщить терминалу закрыть поток.

В системах Windows вам нужно написать ctrl+z в качестве первого символа строки, в противном случае терминал считает его обычным символом.

...