gpt4 book ai didi

C中两个简单的字符计数程序的困惑

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:53 26 4
gpt4 key购买 nike

<分区>

目标是用C写一个简单的字符统计程序,如果这样写:

#include <stdio.h>

main()
{
long nc;

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

其输出中列出的最后一个数字将是正确的字符数。但是,如果这样写:

#include <stdio.h>

main()
{
long nc;

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

其输出中的最后一个数字总是比输入字符串中的真实字符数大一个。我了解到这是因为在输入所需字符串后按 Enter 会引入换行符,该换行符会被计算并产生错误。消除该错误是微不足道的,但我的问题是为什么上面编写的程序没有出现同样的问题?

例如,如果第一个程序在没有输入的情况下运行,它将正确输出 0。然而,第二个将在相同情况下输出 1。为什么不同?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com