gpt4 book ai didi

C 如何在不使用break的情况下验证循环中的输入

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

如何在循环中每次验证输入,而不会出现无限循环,在验证中显示错误而不使用中断:

int main(int argc, char *argv[]) {
int count;


for(count=1; count<6;count++) {
int input;
printf("Please enter a number 1-5:");

if(!scanf("%d",&input)){
printf("nil");
scanf("%d",&input);

}

}

return 0;

}

最佳答案

也许是这样的。它检查有效输入,但由于在不接受输入时很难将输入转储到 scanf(例如数字的字符串),因此我使用 fgets 读取该行,如果有问题,忘记它并获取另一个输入。

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

int main (void)
{
int input, attempts = 0;
char str[100];
do {
if(++attempts == 6) {
exit(1);
}
printf("Please enter a number 1-5: ");
if(fgets(str, sizeof str, stdin) == NULL) {
exit(1);
}
} while(sscanf(str, "%d", &input) != 1 || input < 1 || input > 5);
printf("You entered %d\n", input);
return 0;
}

节目环节

Please enter a number 1-5: -1Please enter a number 1-5: 42Please enter a number 1-5: obiPlease enter a number 1-5: 3You entered 3

关于C 如何在不使用break的情况下验证循环中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41599287/

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