当我在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返回)。我做错了什么?
答案 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);
}
}
}`