2011-03-29 45 views
5

,同時給K & R讀取我碰到下面的例子K&R,如何讀的getchar EOF

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

疑問1:當我鍵入字符CTRL + Z(EOF我SYS)。 o/p是你好
但是當我輸入字符串像abcdef^Zghijk
o/p是abcdef - >(包括箭頭)並等待用戶輸入i/p而不是終止循環並打印hello ..

回答

5

ctrl+z不是EOF,它只是告訴您的終端關閉流的一種方式。

在Windows系統上,您需要將ctrl+z作爲該行的第一個字符,否則終端會認爲它是普通字符。

+0

非常感謝你... – Tarun 2011-03-29 13:27:51

+0

但我懷疑,如果它被視爲一個普通變量那麼爲什麼O/P停止後abcdef - > ..而不是abcdef^zjhijk – Tarun 2011-03-29 14:51:40