C Don';无法理解字符计数程序的输出

C Don';无法理解字符计数程序的输出,c,C,我刚开始学c。将xcode下载到我的mac电脑上,并由K&R购买了c编程语言。我现在在字符计数部分,无法理解程序给我的输出。 节目是 #include <stdio.h> main() { long nc; nc = 0; while (getchar() !=EOF) ++nc; printf("%ld\n", nc); } #包括 main() { 长nc; nc=0; while(getchar()!=EOF) ++数控; pr

我刚开始学c。将xcode下载到我的mac电脑上,并由K&R购买了c编程语言。我现在在字符计数部分,无法理解程序给我的输出。 节目是

#include <stdio.h>
main()
{
    long nc;
    nc = 0;
    while (getchar() !=EOF)
        ++nc;
    printf("%ld\n", nc);
}
#包括
main()
{
长nc;
nc=0;
while(getchar()!=EOF)
++数控;
printf(“%ld\n”,nc);
}
我从这些页面了解到,我需要按ctrl+d两次才能将EOF字符发送到程序,这样就可以了。然而,它给我的答案是140734799804376(逗号是我的)加上字符串中的字符数。这个庞大的数字从何而来?为什么程序不返回4来获取“帮助”,而不是140734799804380

nc = 0 

此处缺少分号,请更改为:

nc = 0;

++nc;
我尝试了如下相同的代码:

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

尝试添加分号以使代码示例可编译!我无法重现你的问题,可能是重复的;您是如何编译和运行代码的?在命令行上?ctrl+r运行程序我的问题中缺少分号,但程序中没有。很抱歉,为什么你不能在控制台上试试呢?我不熟悉mac,但我知道有一个终端应用程序,你可以使用gcc编译和运行程序,例如:gcc program_name.c,然后运行。/a.out我会用谷歌搜索它,然后回复你。谢谢
./test.exe
hello<CTRL+D>5