2014-08-30 63 views
1

我想從std :: string解析浮點值,其中小數點分隔符是「。」。我如何在分隔符是「,」的語言環境中解析這些浮點數?我使用std :: stringstream。澄清:如何強制使用stringstream進行en-US風格的float分析?從不同語言環境中的字符串解析浮點數

setlocale(LC_NUMERIC, "C"); 

或單個流:

+0

你能夠使用C++ 11嗎?另外,你的意思是你想用'',''或''。'作爲分隔符來解析浮點數,還是兩者都是?好像你說了兩件不同的事情...... – therealrootuser 2014-08-30 06:23:10

+0

我使用的是C++ 11,而我的浮動字符串只包含「。」。 – SurvivalMachine 2014-08-30 06:29:45

+0

啊,所以你的本地通常使用','分隔符,但是現在除了逗號之外,你還需要能夠處理'''分隔符? – therealrootuser 2014-08-30 06:34:52

回答

0

可以這樣設置地點爲您的整個程序,基本的「C」一個

std::locale c_locale("C"); 
my_stream.imbue(c_locale); 

這會給你一個「老派,「非i18n解析和打印。您也可以嘗試其他語言環境名稱,但保證在所有系統上都可用的那兩個是「」和「C」,並且看起來後者適用於您的情況。