私はコードを持っていた:std :: wstringの初期化と印刷方法は?
std::string st = "SomeText";
...
std::cout << st;
をし、それがうまく働きました。でも今私のチームはwstring
に移動したいと思っています。 は、だから私が試した:
std::wstring st = "SomeText";
...
std::cout << st;
が、これは私のコンパイルエラー与えた:私は私のようにそれを定義すべきであることを読んでウェブを検索した後
Error 1 error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax> &)' : cannot convert parameter 1 from 'const char [8]' to 'const std::basic_string<_Elem,_Traits,_Ax> &' D:...\TestModule1.cpp 28 1 TestModule1
を:
std::wstring st = L"SomeText"; // Notice the "L"
...
std::cout << st;
これはコンパイルが、 "SomeText"
の代わりに"0000000000"
を印刷します。
私は間違っていますか?
はICUのUnicodeのライブラリを使用することを検討してください - [リンク](http://icu-project.org/apiref/icu4c/index.html)。これは、ユニコードをサポートし、多くの便利な機能を備えています。特にそれらの文字列を操作したい場合に便利です。 – WeaselFox
@Weasel:なぜUnicode文字列を扱うには別のライブラリが必要でしょうか? –
私の経験から、別のライブラリを使ってwchar文字列(検索、置換など)やその他のマルチバイト文字列を操作するほうがはるかに優れています。 – WeaselFox