gpt4 book ai didi

c - for 循环条件下的 getchar()

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

考虑以下代码:

int main()
{
char c;
for(;(c=getchar())+1;)
printf("%c\n",c);
}

它获取我在终端中输入的字符并打印出来。当我在条件下删除 +1 时,程序运行但在 EOF (Ctrl+D) 信号时它不会停止。当我将其更改为 +2 时,同样的问题。

我的问题是 +1 是如何工作的?是否与 getchar()for 循环有关?

最佳答案

那是因为EOF的int值是-1,所以你在做的就是循环直到表达式(c=getchar()) +1) 获取值 0,这是当您读取 EOF 时(其中 exrpession 的值为:-1+1=0)。此外,正如 wll 在评论中指出的那样,您应该将 c 声明为 int,因为 getchar() 返回 int。

关于c - for 循环条件下的 getchar(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40062010/

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