2个浮点数的错误句柄,由一行中的空格分隔

时间:2016-10-22 05:02:49

标签: c

这是我的第一次尝试,但它没有用。

如果我有意输入错误的输入值,则转到INF循环,例如:asdas dfsad afdas

float a,b ;
while (1){
    if(scanf("%f %f",&a,&b) == 2) {
        break;
    }
    printf("Error, try again:");
}

1 个答案:

答案 0 :(得分:3)

避免此类问题的最佳方法是使用fgets()一次读取整行,然后使用sscanf()解析(或者在您的情况下,可能是strtod() )。这不仅可以避免您现在遇到的特定问题,还可以避免在输入格式不符合预期时出现其他类问题。