gpt4 book ai didi

c - 如何检查C语言输入的数据是否正确

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

我有以下代码来要求用户输入(lowWarp)。输入必须在 1.0 到 10.0 之间。如果我输入 0.2,它允许我尝试输入另一个值。但是,如果我输入 1/2 或 asdf 之类的内容,它就会开始无限循环。如何防止这种情况发生并允许输入正确的值?

while (badData == true)
{
printf("Enter the low warp factor; warp factor = \n");
scanf_s("%f", &lowWarp);
if (lowWarp < 1.0 || lowWarp > 10.0) //Determines if number is between 1.0 - 10.0
{
badData = true;
printf("Invalid input! Range is 1.0 - 10.0.\n");
lowWarp = 0.0;
}
else
{
badData = false;
}
}

最佳答案

scanf() 不会丢弃无效输入。所以它会被一遍又一遍地读取并导致无限循环。您可以使用 fgets() 读取并使用 sscanf() 解析它:

   char line[1024];
float lowWarp;

fgets(line, sizeof line, stdin);

if(sscanf(line, "%f", &lowWarp) != 1) {
/* invalid */
}

关于c - 如何检查C语言输入的数据是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34905852/

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