在我目前正在进行的一个项目中,我链接到一个专有的动态库。一旦我运行库的初始化函数,记录和打印数字的行为就会改变。
每三位小数插入逗号。IE。
cout << 123456789 << endl
以前打印出来123456789
,现在打印出来123,456,789
。这非常烦人,因为这种行为不是我想要的。
这个问题不仅在我正在编译的二进制文件中很明显,而且还出现在我链接到它的所有库中couts
。stringstreams
我在调用初始化函数后尝试使用这行代码
setlocale(LC_ALL,"C");
认为它可能会将我的语言环境重置为默认值;但无济于事。逗号坚持!!
这段代码:
std::cout.imbue(std::locale("C"));
用于重置couts
和每一个stringstream
我应用它的语言环境。但是,我真的需要调用我链接到的每个库中声明的每个吗imbue
?stringstream
有些库是专有的,我实际上无法更改它们的源代码。
必须有办法将语言环境重置回"C"
全局?