gpt4 book ai didi

c - for循环迭代问题

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:14 24 4
gpt4 key购买 nike

我已经尝试过此代码的许多变体,包括使用 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 的值,这导致循环运行两次迭代。谁能进一步解释这个概念或为我提供更多相关信息的链接?

最佳答案

前一个 getchar 的尾随换行符被用作下一个 getchar 的输入

所以使用,

   for(nc = 0; getchar() != EOF; ++nc)
{
printf("%.0f\n", nc);
getchar(); //"eat" the trailing newline
}

关于c - for循环迭代问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18809643/

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