我試圖完成練習1-9以K & R和我想出了這一點:K&R運動1.9 - 程序中無限循環
#include <stdio.h>
/* this program will trim each group of spaces down to a single space */
int main()
{
int c, lastCharblank;
lastCharblank = 0;
while ((c = getchar()) != EOF) {
if (c != ' ' || !lastCharblank)
putchar(c);
lastCharblank = (c == ' ');
}
putchar('\n');
return 0;
}
,同時通過bash命令行運行的程序,我能夠輸入文本(「修復這些空間」),然後輸入cntl-d來發送EOF信號。該程序返回所有更正的空格的行,但不會退出。它似乎處於一個無限循環中。它爲什麼不退出?
它不會這樣做。它會正確執行。你正在使用哪個平臺。 – 2015-11-02 04:43:35
您必須在行的開頭輸入Ctrl-D才能註冊爲EOF。請參閱http://unix.stackexchange.com/a/19097/7084 –
我正在Linux Mint上的bash命令行中運行該程序。 –