7

在我目前正在进行的一个项目中,我链接到一个专有的动态库。一旦我运行库的initialize函数,记录和打印数字的行为就会改变。

每三位小数插入逗号。IE。

cout << 123456789 << endl

以前打印出来123456789,现在打印出来123,456,789。这非常烦人,因为这种行为不是我想要的。

经过一些研究,我怀疑是语言环境问题。我在调用initialize函数后尝试使用这行代码

setlocale(LC_ALL,"C");

认为它可能会将我的本地重置为默认值;但无济于事。逗号坚持!!

我错过了什么?

我在这里发布了一个相关的后续问题

4

2 回答 2

5

您可以为流设置语言环境,与使用setlocale. 尝试std::cout.imbue(std::locale("C"));

于 2013-06-19T22:18:19.127 回答
2

如果您只是想摆脱逗号,您还可以将std::numpunct可能导致它的当前逗号替换为不覆盖do_grouping的默认逗号。

std::cout.imbue(std::locale(std::cout.getloc(), new std::numpunct<char>()));
于 2013-06-19T22:29:53.867 回答