4

デバッグ上の理由から、wstring に unsigned char を追加したいと考えています。

しかし、unsigned char を wstring に変換する関数が見つからないので、追記できません。

編集:これまでに投稿されたソリューションは、私が必要とすることを実際には行いません。0を「0」に変換したい。これまでのソリューションは 0 を 0 文字に変換しますが、「0」文字列には変換しません。

誰でも助けることができますか?

ありがとうございました。

unsigned char SomeValue;
wstring sDebug;

sDebug.append(SomeValue);
4

4 に答える 4

12

char を文字列に追加するための正しい呼び出し (または、この場合、wchar_t を wstring に追加するための呼び出し) は次のとおりです。

sDebug.push_back(SomeValue);

ドキュメンテーションはこちら

char を wchar_t に拡張するには、現在のロケールに従って拡張するstd::btowcを使用することもできます。

sDebug.push_back(std::btowc(SomeValue));
于 2013-03-28T18:09:58.953 に答える
3

unsigned char を char にキャストするだけです。

sDebug.append(1, static_cast<char>(SomeValue));

operator+ を使用する場合は、次のようにします。

sDebug+= static_cast<char>(SomeValue);

またはこれでも:

 sDebug+=boost::numeric_cast<char>(SomeValue);
于 2013-03-28T18:10:22.073 に答える
0

wstring には、char を受け取るコンストラクターがあります。これにより、追加できる char から wstring が作成されます。

于 2013-03-28T18:08:13.790 に答える
0

append指定された文字を追加するのに何回もかかるオーバーロードがあります。

sDebug.append(1, SomeValue);

ただし、これにより と の間の変換が行わunsigned charwchar_tます。おそらく、あなたはなりたいSomeValueですwchar_t

于 2013-03-28T18:06:54.493 に答える