2012-05-25 126 views
1
#include <stdio.h> 

int main(int argc, const char * argv[]) 
{ 
    long nc; 

    nc=0; 
    while (getchar()!=EOF) { 
     ++nc; 
     printf("%ld\n", nc); 
    } 
} 

這是代碼,當我輸入一個字符時,它將打印1然後打印2,即使我只輸入一次。getchar()函數不起作用

我正在使用Xcode。

回答

6

這是代碼,當我輸入一個字符時,它會打印1,然後打印2,即使我只輸入一次。

但是您確實按了return,不是嗎?嘗試按CTRL + D或注意循環中的換行符。也許這樣?

int ch; 
while ((ch = getchar()) != EOF) { 
    if (ch == '\n') 
     continue; 
    ++nc; 
    printf("%ld\n", nc); 
} 
+0

是的,我該怎麼辦? – Newyo

+0

@Newyo嗯,'getchar'返回換行符,只有在返回'EOF'後。 – cnicutar

+0

謝謝。我很困惑。 – Newyo