禁用cout中的逗号

Disable commas in cout?

本文关键字:cout 禁用      更新时间:2023-10-16

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

每三个小数点后插入逗号。Ie .

cout << 123456789 << endl

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

经过一番研究,我怀疑是区域设置问题。在调用initialize函数

后,我尝试使用这行代码
setlocale(LC_ALL,"C");

认为它可能会重置我的本地为默认值;但无济于事。逗号一直存在!!

我错过了什么?

我在这里贴了一个相关的问题

您可以为流设置语言环境,与setlocale设置的语言环境无关。试试std::cout.imbue(std::locale("C"));

如果你只是想摆脱逗号,你也可以替换当前的std::numpunct,这可能会导致它与默认的一个不覆盖do_grouping

std::cout.imbue(std::locale(std::cout.getloc(), new std::numpunct<char>()));