gpt4 book ai didi

c - While 循环未退出,错误为 `while(x!='\n')`

转载 作者:行者123 更新时间:2023-11-30 18:25:17 25 4
gpt4 key购买 nike

为什么这个 while 循环没有退出?

我想输入用户输入的一系列数字,然后逐一使用它们进行进一步处理。我没有数字列表的大小。有人可以告诉我该怎么做吗?

#include<stdlib.h>
#include<stdio.h>

int main()
{
int x;
scanf("%d",&x);
while(x!='\n')
{
printf("%d",x);
scanf("%d",&x);
}
return 0;
}

示例:

输入:

3 5 6

输出:

3 5 6

实际输出:

3 5 6 

但循环不退出

最佳答案

%d 转换说明符从不将 \n 存储到缓冲区中。它会读取缓冲区中的 \n 并将其留在那里。因此,这本质上是一个无限循环。

您可能需要使用像 %c 这样的格式说明符,它实际上读取并存储\n

不过,如果我可以建议的话,请尝试使用 getchar() ,它从标准输入读取下一个字符并以int形式返回该值。然而,对于数字的输入,您需要相应地解析和存储整数和/或浮点值,但这肯定会为您提供更大的灵 active 。

关于c - While 循环未退出,错误为 `while(x!='\n')`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31786902/

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