-1
我有代碼:while循環不斷重演
int c;
while((c = getchar()) != EOF)
putchar(c);
據我所知EOF等於-1 我讀-1從鍵盤(輸入流),它必須停止本身,而是循環不斷重複。 爲什麼?
我有代碼:while循環不斷重演
int c;
while((c = getchar()) != EOF)
putchar(c);
據我所知EOF等於-1 我讀-1從鍵盤(輸入流),它必須停止本身,而是循環不斷重複。 爲什麼?
-1
實際上是兩個單獨的字符-
和1
,它不等同於EOF。在Windows上使用Ctrl + d或在Windows上使用Ctrl + z。
As @SouravKanta暗示:您的循環一次只能讀取一個字符,因此如果您輸入-1,則會讀取-
,然後是1
,它們都不指示EOF。我相信Cntl-d是你想要的,至少在* nix(你沒有指定平臺)。
嘗試使用Ctrl + d或Ctrl + Z –
如果你的意思是你輸入兩個字符'-1',那麼它不會停止(字符只會被回顯,EOF通過文件末尾:'Ctrl-Z'(Windows)或'Ctrl-D'(Unix) – TripeHound
請注意,在Windows控制檯中,當Ctrl-Z緊跟在'newline'後面時,它只會被識別爲'EOF' ,否則它被視爲值'26'。 –