从不同语言环境中的字符串解析浮点数

时间:2014-08-30 06:20:44

标签: c++ string

我想解析std :: string中的浮点值,其中小数分隔符为"。"。如何在分隔符为",#34;?的区域设置中解析此类浮动?我使用std :: stringstream。澄清一下:如何使用stringstream强制进行en-US样式浮点解析?

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式将整个程序的区域设置设置为基本“C”:

setlocale(LC_NUMERIC, "C");

或者对于单个流:

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

这会给你“老派”,非i18n解析和打印。您也可以尝试其他语言环境名称,但保证在所有系统上都可用的两个名称是“”和“C”,看起来后者适用于您的情况。