gpt4 book ai didi

检查用户是否输入了 int - C

转载 作者:行者123 更新时间:2023-11-30 15:55:33 24 4
gpt4 key购买 nike

我需要检查用户是否在 scanf() 中输入了整数(在 C 中)。我有这个代码:

do {
srs = scanf("%d", &x);
} while (!srs);

如果我输入一个数字,它就会工作并继续程序,但如果我输入一个字符,它只会要求我再次输入。不过,如果我输入一个正确的整数,它不会打破循环。

最佳答案

当您不先输入数字时,它会将非数字字符保留在输入流上以供下一次调用使用。所以你陷入了无限循环。

您应该使用 fgets 读取整行输入,然后在该输入行上使用 sscanf

do {
char line[512];
fgets(line,512,stdin);
srs = sscanf(line,"%d", &x);
} while (!srs);

关于检查用户是否输入了 int - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12058945/

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