gpt4 book ai didi

c - 为什么我的 Do 和 while 函数在我输入值时关闭?

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

我目前卡在这个代码块上,似乎对我放入的任何输入都会自动关闭?我已经花了 15-18 分钟,但我似乎不明白为什么。此语法也直接来 self 的 C 指南书 >.<"

#include <stdio.h>

int main()
{
int input = 0;
do
{
input = scanf("%d", &input);
printf("Hello!\n");

} while( input < -1 || input > 10);
return 0;
}

我这里可能有一些错误的语法吗?

最佳答案

你错了:

input = scanf("%d", &input);

您在变量 input 中获取输入,但您正在用 scanf 的返回值覆盖它。

scanf returns成功输入的值的数量或 EOF 如果在扫描第一个输入时发生错误。

因此,无论您作为输入提供什么值,变量 input 都会获得 1EOF 的值,因此,您的 do-while 循环可能会中断。

你应该像这样使用它:

int ret;
ret = scanf("%d", &input);

关于c - 为什么我的 Do 和 while 函数在我输入值时关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25819706/

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