gpt4 book ai didi

c - While 循环仅接受整数值并退出任何其他输入

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

我在 C 中运行此程序以将华氏度转换为摄氏度,并且只需要从用户那里接受整数值。

请告诉我如何修改它?

int main() {
int x;
double y;
while(x>0) {
printf("Enter the temperature in Fahrenheit:");
scanf("%d", &x);
y=((x-32)/1.8)
printf("%f\n",y);
}
}

最佳答案

您的代码不起作用的原因是有时 scanf 不读取任何内容,因此它不会修改 x

您知道 scanf 通过检查其返回值来读取内容。它返回“已扫描”项目的数量。在这种情况下,数字必须是 1

scanf 返回 0 时,您应该读取并丢弃缓冲区中的数据。您可以通过提供 %*[^\n] 格式说明符来做到这一点,这意味着“读取并丢弃直到 '\n' 字符的输入。读取一个完整代码段int 直到成功看起来像这样:

while (scanf("%d", &x) != 1) {
printf("Please enter a valid number:");
scanf("%*[^\n]");
}

注意:不用说,您应该修复计算 y 行中缺少分号 ; 的语法错误。

关于c - While 循环仅接受整数值并退出任何其他输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469182/

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