通过C book计算字符

时间:2016-03-04 06:46:14

标签: c linux character codeblocks counting

我一直试图通过“BRIAN W KERNIGHAN& DENNIS M. RITCHIE的C编程语言”学习一些C语言,我有一个我无法理解的问题。

以下是与输入字符计数相关的第1.5节(第17页)中的交易,这是我的代码:

#include <stdio.h>

int main()
{
    double nc;

    for (nc = 0; getchar() != EOF; ++nc);
    printf("%0.f\n", nc);
}

这部分:

printf("%0.f\n", nc);

应该打印实际的字符计数器,对吗?问题是它完全没有给我任何东西。我一直在通过代码块尝试它,也通过终端通过“cc code.c”来尝试它,所有它只是等待我输入和输入,而不是更多。

我在这里错过了什么吗?

提前致谢,

Anoubis

2 个答案:

答案 0 :(得分:2)

如果您只输入随机文字输入,那么您将被困在getchar() != EOF

该程序等待EOF - End Of File

我将您的代码复制到a.c并使用gcc a.c -o a.out

进行编译

如果运行./a.out我得到了您描述的行为,直到我点击了与我的终端中Ctrl+D对应的EOF

程序将在收到字符EOF后打印收到的字符数。

使用该代码的另一种方法是将另一个文件传送给它。

创建一个名为blaha.txt的虚拟文件并在其中写入内容。 然后你可以将它传递给程序,如下所示: a.out < blaha.txt

答案 1 :(得分:1)

您的程序等待输入并使用它直到它到达文件末尾。您可以在Windows上键入control-Z后跟enter,在Linux和MacOS上输入control-D等特殊字符,从终端发出文件结束信号。