c - 不理解字符计数程序的输出

标签 c

我刚刚开始学习c。将 xcode 下载到我的 mac 并购买了 K&R 的 C 编程语言。我现在处于字符计数部分,无法理解程序给我的输出。 程序是...

#include <stdio.h>
main()
{
    long nc;
    nc = 0;
    while (getchar() !=EOF)
        ++nc;
    printf("%ld\n", nc);
}

我从这些页面了解到,我需要按 ctrl+d 两次才能将 EOF 字符发送到程序,并且工作正常。然而,它给我的答案是 140,734,799,804,376 (逗号是我的)加上字符串中的字符数。这个庞大的数字从何而来?为什么程序不直接返回 4 来表示“help”,而是返回 140734799804380?

最佳答案

nc = 0 

++nc

这里缺少分号,改为:

nc = 0;

++nc;

我尝试了同样的代码:

./test.exe
hello<CTRL+D>5

关于c - 不理解字符计数程序的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33749877/

相关文章:

c - 严格别名和指向 union 字段的指针

c - C中将空行压缩为一个空行

c - 在 C 中比较两个字符串是否相等的最佳方法是什么?

C 为什么 3 除以 2 在一个 int 中等于 0,而在另一个 int 中等于 1?

c - TCP 套接字接收指示 "unexpected"成功发送后断开连接

C 语言 以二进制方式访问内存

c - fscanf 读访问段错误

将 char 转换为二进制

C - 'Greater than' 与 'Greater than or equal to' 性能

创建运行批处理命令并将其传递给第二个 C 程序的 C 程序