2012-05-09 103 views
1

我sscanf和解析浮點問題。問題是我試圖從文本文件加載浮點數據,但它在Linux上的不同語言環境中表現奇怪。它似乎取決於操作系統小數點設置(或。),其中我加載的文件始終是小數點。C - 麻煩sscanf

所以,代碼如下:

sscanf(line[i],"%f %f %f %f %f",&floatbuffer[0],&floatbuffer[1], &floatbuffer[2], &floatbuffer[3], &floatbuffer[4]); 

,但它並沒有在使用逗號(,)作爲小數點的語言環境下工作,例如pl_PL。我該如何解決這個問題?

回答

2

你試過:

#include <locale.h> 

setlocale(LC_NUMERIC,"C"); 
+0

肯定的,這是行不通的 –

+0

那麼你可能會面臨不同的問題,因爲我測試這既'的printf()'和'的sscanf()'工作。也許嘗試locale''POSIX'',或者安裝的另一個語言環境(通過運行'locale -a'來檢查已安裝的語言環境) – mvds

0

你可以讀/寫的二進制數據。
但要注意便攜性。