相关疑难解决方法(0)

C++在全局范围内将语言环境重置为"C"?

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

逗号每三位小数插入一次.IE浏览器.

cout << 123456789 << endl
Run Code Online (Sandbox Code Playgroud)

用于打印出来123456789,现在打印出来123,456,789.这非常令人讨厌,因为这种行为不是我想要的.

这个问题不仅在我正在编译的二进制文件中很明显,而且还出现在我链接到它的所有coutsstringstreams库中.

我在调用initialize函数后尝试使用这行代码

setlocale(LC_ALL,"C");
Run Code Online (Sandbox Code Playgroud)

认为它可能会将我的语言环境重置为默认值; 但无济于事.逗号坚持!!

这段代码:

std::cout.imbue(std::locale("C"));
Run Code Online (Sandbox Code Playgroud)

用于重置我的couts每个stringstream应用程序的语言环境.但是,我真的需要调用我链接到的每个库中的imbue每个stringstream声明吗?有些库是专有的,我实际上无法更改其源代码.

必须有办法将语言环境重置为"C"全局?

c++ locale cout stringstream comma

10
推荐指数
1
解决办法
2108
查看次数

标签 统计

c++ ×1

comma ×1

cout ×1

locale ×1

stringstream ×1