在运行行计数时没有输出

时间:2018-02-09 05:10:13

标签: c

当我在C编程语言书中运行行计数代码时,我没有得到任何输出。我没有返回任何反映行数的内容。代码如下:

#include <iostream>
//This program counts lines in its input
//
int main() {

    int c, nl;

    nl = 0;
    while ((c = getchar())!= EOF )
        if (c ==  '\n')
            ++nl; //nl = nl +1
    printf("%d\n", nl);
}

输出如下:

/home/xxx/xxxx/lineCounting1/cmake-build-debug/lineCounting1
line1
line2
line3
line4
^D

Process finished with exit code 0

我使用ctrl + D来停止执行并获得输出。但没有(除了^ D返回)。我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是一个C程序,所以我们必须包含stdio.h而不是iostream。

在主要我们已经声明了2个变量 变量名称的数据类型&#34; c&#34;应该是&#34; char&#34;和nl是一个当前设置为0的计数器。

getchar()是一个库函数,它只接受字符串的第一个字符。 我们将getchar的值赋给c。并遍历它直到文件结束(EOF)。 如果条件为真,那么我们正在进入。 在while内部有一个if条件,表示if(c ==&#39; \ n&#39;)然后递增计数器(nl)并显示计数。

代码看起来像这样,但它仍然无法工作,因为它正在进入无限循环 我们必须为变量c。

指定一些东西
`#include<stdio.h>
 //This program counts lines in its input
 int main()
 {
   char c;
   int nl;
   nl = 0;
   printf("Enter the character\n");
   while((c = getchar())!= EOF )
   {
     if (c ==  '\n')
     {
       ++nl; //nl = nl +1
       printf("%d\n", nl);
     }
   }
 }`