cout
( / wcout
/ ...) char32_t を C++11 のコンソールに出力するにはどうすればよいですか?
次のコードは、16 進値を出力します。
u32string s2 = U"Добрый день";
for(auto x:s2){
wcout<<(char32_t)x<<endl;
}
まず、wcout
文字として印刷することになっているとは思わないが、char
and wchar_t
. char32_t
どちらでもありません。
個々の を出力するサンプル プログラムを次に示しますwchar_t's
。
#include <iostream>
using namespace std;
int main()
{
wcout << (wchar_t)0x41 << endl;
return 0;
}
出力 ( ideone ):
A
現在、主要な OS でもコンソールで一貫した Unicode 出力を取得することは不可能です。cout
、wcout
、printf()
などを介した単純な Unicode テキスト出力は、wprintf()
主要なハックなしでは Windows では機能しません。Windows コンソールで読み取り可能な Unicode テキストを取得する際の問題は、適切な Unicode フォントを選択できることにあります。Windows のコンソールは、この点でかなり壊れています。私のこの回答を見て、その中のリンクをたどってください。