我想解析一個由空格分隔的數字的字符串。但是,這些數字可能是整數或浮點數。 scanf中是否有一種方法將整數和數字解析爲一個集體浮點數?使用%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);
我想解析一個由空格分隔的數字的字符串。但是,這些數字可能是整數或浮點數。 scanf中是否有一種方法將整數和數字解析爲一個集體浮點數?使用%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);
它只是工作,整數是特殊情況下的浮點數。
但是,請注意,大整數可能無法精確地由浮點數表示(例如,1e9 + 1
),但我不認爲您會爲此而煩惱。
確實。爲了減輕這個問題的嚴重性,OP應該使用'double'而不是'float'。除非你真的知道你在做什麼,否則基本上不應該使用'float'。 –
原來我的測試是錯誤的,你可以從%F整數讀取。
當然,第一個'sscanf'行是完美的,並會按預期工作? – Dan
兩個示例都應該可以正常工作 - 確切的問題是什麼? –
因爲任何整數也是一個浮點數不應該有任何問題 – Sleeperson