2017-02-17 39 views
-1
#include <stdio.h> 

int main(){ 
    int c, nl=0; 

    while((c = getchar()) != EOF) 
     if(c=='\n') 
      nl++; 

    printf("%d",nl+1); 
    return 0; 
} 

K &答案c,第1.5.3節: 行計數程序完全複製在clion中。我正在使用Mingw64。當getchar()EOF進行比較時,控制檯上沒有輸出。它可以很好地處理其他角色。使用CTRL^D退出程序時'代碼0',沒有任何輸出在控制檯上。我試過在bash中運行它,但仍然沒有輸出。很長時間以來,這一直困擾着我們。ctrl^D之後控制檯上沒有輸出?

輸入:

一些刺多行

,,,

也許..

4行。

預期輸出:

實際輸出:

(無) 編輯-1:我發現我有這個問題,所有的程序,其在某處使用EOF比較。這些程序應該從控制檯運行,還是要從文件中輸入?

+0

請顯示代碼,輸入輸出和期望輸出。 –

+0

到目前爲止請顯示您的研究/調試工作。請先閱讀[問]頁面。 –

+0

_尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例._ –

回答

0

這些程序是爲了讀取來自文件的輸入。等等bash的,如果你這樣做: ./linecount < textfile.txt 會給你輸出 5 但使用ctrl^D生成/觸發EOF字符不能很好地工作在編輯我猜(至少不是我的)。