私のUbuntuには2つの言語があります。私は単純なプログラムを始めたいが、異なる言語でデータを入力する必要がある。私はグローバルトグルを1つの言語から別の言語に切り替えるのに疲れています。そして、私はこのコードを次のコードで自動化しようとしています:cinのロケールを変更するには
#include <locale>
#include <clocale>
void change_locale(bool lang)
{
std::locale delocale("de_DE.utf8");
std::locale enlocale("en_AG");
if (lang == true){
std::cout << "set DE locale" << '\n';
setlocale(LC_ALL,"de_DE.utf8");
std::locale::global(delocale);
std::cin.imbue(delocale);
}
else {
std::cout << "set Eng locale" << '\n';
setlocale(LC_ALL,"en_AG");
std::locale::global(enlocale);
std::cin.imbue(enlocale);
}
}
しかし、動作しません。それがcinだけに適用されることに注意してください。それを実行可能にするには?