在我正在进行的项目中,我链接到一个专有的动态库.一旦我运行库的初始化函数,记录和打印数字的行为就会改变.
逗号每三位小数插入一次.IE浏览器.
cout << 123456789 << endl
Run Code Online (Sandbox Code Playgroud)
用于打印出来123456789,现在打印出来123,456,789.这非常令人讨厌,因为这种行为不是我想要的.
这个问题不仅在我正在编译的二进制文件中很明显,而且还出现在我链接到它的所有couts和stringstreams库中.
我在调用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"全局?