scanf使用%f作为整数

scanf使用%f作为整数,c,floating-point,integer,scanf,C,Floating Point,Integer,Scanf,我正试图解析一个字符串,其中的一些数字用空格分隔。但是,这些数字可以是整数或浮点数。在scanf中有没有办法将整数和数字解析为一个集合浮点 例如: float arg1, arg2 = 0; sscanf("LINE 10 10", "LINE %f %f", &arg1, &arg2); // and sscanf("LINE 10.0 10.0", "LINE %f %f", &arg1, &arg2); 结果证明我的测试是错误的,你可以用%f读取一个整数

我正试图解析一个字符串,其中的一些数字用空格分隔。但是,这些数字可以是整数或浮点数。在scanf中有没有办法将整数和数字解析为一个集合浮点

例如:

float arg1, arg2 = 0;
sscanf("LINE 10 10", "LINE %f %f", &arg1, &arg2);

// and
sscanf("LINE 10.0 10.0", "LINE %f %f", &arg1, &arg2);

结果证明我的测试是错误的,你可以用%f读取一个整数。

它只是工作,整数是浮点的特例


然而,请注意,大整数可能无法用浮点数精确表示(例如,
1e9+1
),但我认为您不会为此而烦恼

第一行
sscanf
肯定很好,可以按预期工作?两个示例都可以-到底是什么问题?因为任何整数也是浮点数,所以不应该有任何问题,你想以同样的方式处理浮点和整数。你问这些问题是因为你没有尝试语法就想到了:)请不要用简单的问题浪费你的内存:pinded。为了降低此问题的严重性,OP应该使用
double
而不是
float
。基本上,
float
不应该被使用,除非你真的知道自己在做什么。