0

所以当我计算字符时,我没有得到任何输出。这段代码的输出是什么?因为当我编译并执行它时,我得到的只是空白的黑色空间。我认为它应该计数。我不明白。请原谅,我刚开始学习 C。我只想知道这段代码到底应该显示什么作为输出?

#include <stdio.h>
/* count characters in input; 1st version */

main()
{
    long nc;

    nc = 0;
    while (getchar() != EOF)
         ++nc;
    printf("%ld\n", nc);
}
4

3 回答 3

3

欢迎来到 StackOverflow。我将逐行介绍这段代码的作用,也许这会有所帮助。

引入一些定义,特别是用于printf

#include <stdio.h>

声明main函数:

main()
{

为字符数声明并设置一个变量:

    long nc;
    nc = 0;

这是关键——循环,一个接一个地获取字符,直到接收到的字符匹配EOF,在大多数系统上是 Ctrl-D。

    while (getchar() != EOF)

为每个字符增加nc变量(增加 1)。

         ++nc;

将字符数打印为长整数。

    printf("%ld\n", nc);
}
于 2013-10-25T02:04:46.290 回答
0

当您运行程序时,它将等待用户输入(通过 收集getchar())。

您必须先在终端中键入一些字符,然后按ctrl+d发送传输结束字符(EOF最终匹配的字符)。

于 2013-10-25T02:02:57.323 回答
0

每个文件都以EOF. 所以程序计算字符数,直到EOF达到 。迭代是使用whileloop 完成的。

您应该为程序提供输入。

在程序所在的当前文件夹中创建一个文本文件sample.txt,然后将该文本文件作为程序的输入。

program < sample.txt
于 2013-10-25T02:12:07.417 回答