2017-02-17 42 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字符不能很好地工作在编辑我猜(至少不是我的)。