2011-09-05 76 views
-1

我想解析一個由空格分隔的數字的字符串。但是,這些數字可能是整數或浮點數。 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); 
+3

當然,第一個'sscanf'行是完美的,並會按預期工作? – Dan

+0

兩個示例都應該可以正常工作 - 確切的問題是什麼? –

+0

因爲任何整數也是一個浮點數不應該有任何問題 – Sleeperson

回答

2

它只是工作,整數是特殊情況下的浮點數。

但是,請注意,大整數可能無法精確地由浮點數表示(例如,1e9 + 1),但我不認爲您會爲此而煩惱。

+1

確實。爲了減輕這個問題的嚴重性,OP應該使用'double'而不是'float'。除非你真的知道你在做什麼,否則基本上不應該使用'float'。 –

-1

原來我的測試是錯誤的,你可以從%F整數讀取。