我想解析std :: string中的浮点值,其中小数分隔符为"。"。如何在分隔符为",#34;?的区域设置中解析此类浮动?我使用std :: stringstream。澄清一下:如何使用stringstream强制进行en-US样式浮点解析?
答案 0 :(得分:0)
您可以通过以下方式将整个程序的区域设置设置为基本“C”:
setlocale(LC_NUMERIC, "C");
或者对于单个流:
std::locale c_locale("C");
my_stream.imbue(c_locale);
这会给你“老派”,非i18n解析和打印。您也可以尝试其他语言环境名称,但保证在所有系统上都可用的两个名称是“”和“C”,看起来后者适用于您的情况。