行計數程序:
1 #include
2
3 main()
4 {
5 int c, nl;
6
7 nl = 0;
8 while ((c = getchar()) != EOF);
9 if (c == '\n')
10 ++nl;
11 printf("%d\n", nl);
12 }
13
執行:
Press ENTER or type command to continue
\n
\n
\n
\n
0
shell returned 2
Press ENTER or type command to continue
Press ENTER or type command to continue
a
a
a
a
0
shell returned 2
最後一行按crtl+d,為什麼都是0。還有最後的shell returned為什麼是2?謝謝
#include
int main()
{
int c, nl;
nl = 0;
while ((c = getchar()) != EOF){
if (c == '\n')
++nl;
}
printf("%d\n", nl);
}
你的程序沒完整,不太清楚你問的那個shell return 2。這是我根據你那個程序改的,你主要的錯誤是while後面要加一個‘{’把判斷換行符的語句包括進去,不然按照你的加‘;’這個while循環什麼都不執行,只是一直讀入字符判斷是不是結束而已。別聽上面兩個的,沒EOF怎麼判斷while結束?我們按下ctrl+z(你的是d應該是Linux下的,我的是windows的)表示輸入結束,這點多編程大家都知道=。=不知道他們怎麼想的