#include <stdio.h>
int main() {
int c;
while ((c = getchar()) != EOF) {
putchar(c);
}
}
這工作得很好,當EOF(CTRL + Z)是一個新的生產線,但是當輸入 是:
布拉布拉^ Z
這是行不通的。 當我調試程序時,它告訴我輸入「^ z」(^ z = EOF)被保存爲26,
,但是當輸入^ z在新行中時,它被保存爲-1。 爲什麼?
萬一有任何不明白:
它保存在變量c,並沒有工作意味着它不終止while循環,只有當輸入^ Z被放在一個新行它使用tearminates循環
IM windows的getchar和EOF C語言進行編程
你在代碼中忘了'#include'。你的問題可能是特定於操作系統的。在我的Linux系統上,CtrlZ與EOF無關。 –
嘗試管道文件。由於線路緩衝,終端有時會表現出奇怪的現象。 – Olaf
「不起作用」是沒有**特定的**問題描述。 「輸入^ z保存爲26」也不清楚。它保存在哪裏?哪個輸入? – Olaf