C++在整个程序中设置Locale

Tri*_*tan 4 c++ locale global

我正在寻找一种在整个程序中设置语言环境的方法,如果可能的话.

我在我的main函数中设置了这样的语言环境:

int main()
{
    setlocale(LC_ALL, "");
    ....
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,它并没有在整个程序中将语言环境设置为我的不同类/方法.我宁愿不在每个将在屏幕上打印并创建C++语言环境对象并传递给它的方法之上编写此行. "我觉得很可以接受.

感谢您的时间.

Cub*_*bbi 9

修改全局语言环境设置的两个函数是std :: setlocale和std :: locale :: global.所有未来的C和C++ I/O和字符串操作都将使用它们,除了在代码运行之前构造的六个标准I/O C++流,因此如果需要,您可能必须单独填充它们:

#include <locale>
#include <clocale>
int main()
{
   std::setlocale(LC_ALL, ""); // for C and C++ where synced with stdio
   std::locale::global(std::locale("")); // for C++
   std::cout.imbue(std::locale());
   // cerr, clog, wcout, wcerr, wclog as needed
Run Code Online (Sandbox Code Playgroud)