2018年03月12日
《その330》 wchar_t型文字の出力
wchar_t型文字の出力
wcout で wchar_t型文字を出力する際には、ロケールの設定が必要です。
ロケール設定には、wcout のメンバ関数 imbue を利用します。
・wcout.imbue(std::locale(""));
・wcout.imbue(std::locale("Japanese"));
日本語の OS 環境であれば、"" で問題ありません。
また、<locale.h>ヘッダが提供する setlocale関数を用いて、
・setlocale(LC_ALL, "");
・setlocale(LC_CTYPE, "");
と記述する方法もあります。
wcout による出力の前に、上記のどれか一つを記述しておく必要があります。
#include <string>
#include <iostream>
using namespace std;
int main() {
wcout.imbue(std::locale(""));
// wcout.imbue(std::locale("Japanese"));
// setlocale(LC_ALL, "");
// setlocale(LC_CTYPE, "");
wstring ws1 = L"abcABC";
wstring ws2 = L"北海道〜沖縄";
wcout << ws1 << '\n';
wcout << ws2 << '\n';
ws1.insert(
ws1.begin() + 3,
ws2.begin() + 4,
ws2.end()
);
wcout << ws1 << '\n';
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7425581
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック