我尝试了此代码的许多变体,包括使用scanf
函数,并且每次它增加 2 点而不是 1 点。这是代码:
#include <stdio.h>
int main(void)
{
double nc;
for(nc = 0; getchar() != EOF; ++nc)
printf("%.0f\n", nc);
}
这是我得到的输出。我使用的输入是 qwerty,输出是数字 0-11 而不是预期的 0-5。
q
0
1
w
2
3
e
4
5
r
6
7
t
8
9
y
10
11
我的一个想法是,当我按下回车键时,它与我输入的字符一起被视为一个值getchar
,这会导致循环运行两次迭代。任何人都可以进一步解释这个概念或为我提供更多信息的链接吗?