C++Builder 2009/2010におけるstd::wcinの不具合と対策

Embarcadero Discussion Forums: Thread: std::wcin、std::fgetws 等入力ストリームの異常について」より。

C++Builder 2009/2010では、

char locale[] = "japanese";
std::locale::global(std::locale(locale));
std::wcin.imbue(std::locale(locale));
std::wcout.imbue(std::locale(locale));

std::wstring str;
std::wcin >> str;
std::wcout << str << std::endl;

というコードで、日本語を入力すると文字化けするという問題。

原因は、Dinkumwareのバグらしい。

バグを回避するためのコードも提供されている。
ありがたい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください