- ベストアンサー
How to convert unsigned char numbers to string
- Learn how to convert unsigned char numbers to string in C++.
- Use the provided code to convert the numbers and assign them to a string variable.
- Check the example code and find out the correct way to assign the numbers to the string.
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>この中に入っているのは数値です。バイナリファイルから代入した値をここに入れています。なので、hexで出すと”31”と出てくるのですね。 hexで31ならば'1'ですから「数字の1」ではありませんか? まぁ数値の49でもあるワケですが。 # ASCIIコードならば…ですが。 C#じゃなくて…CLIでしたっけ? # epistemeさんのコードは、VS2005でCLRで動きましたが…。 # この辺り、全然触っていないのでなんとも…。
その他の回答 (2)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
using namespace System; using namespace System::Collections::Generic; int main() { const int N = 6; unsigned char id[N] = { 1, 2, 3, 4, 5, 6 }; Text::StringBuilder builder; for ( int i = 0; i < N; ++i ) { builder.Append(String::Format("{0}",id[i])); } String^ result = builder.ToString(); Console::WriteLine("[{0}]", result); }
お礼
回答頂きありがとうございます。ちょっとStringBuilderっていうのを試してみたいと思います。
- Wr5
- ベストアンサー率53% (2173/4061)
C#は触っていませんが… >Wireless_unit[i].wireless_id[0] = 1; の1は「数値」の1ですか? 「数字」の1('1')ですか? 「数値」と「数字」の違いはわかりますか? >Wireless_unit[i].wireless_id[k].ToString("X2"); は、「wireless_id[k]の値を16進数表記2桁で文字列化せよ」ということではありませんか? 上の「数字」の1であればASCIIコードで0x31になりますから、 >Wireless_ID_str02[i]->Wireless_ID_str = ”test313131313131” で"31"になるのは指定通りです。 # 元々"test"が入っていたのでしょう。 数値の1であれば、 ”test010101010101” となったでしょう。 その上で… ToString("X2") が意図したモノですか? 「数字」だったらToString()など使わずにそのまま連結できるんじゃないでしょうか? 「数値」ならToString("D1")かToString("X1")となるのでは? # ただし入っている数値が0~9の場合に限りますが。
お礼
回答頂きありがとうございます。助かります。 >>Wireless_unit[i].wireless_id[0] = 1; >の1は「数値」の1ですか? >「数字」の1('1')ですか? >「数値」と「数字」の違いはわかりますか? >>Wireless_unit[i].wireless_id[0] = 1; この中に入っているのは数値です。バイナリファイルから代入した値をここに入れています。なので、hexで出すと”31”と出てくるのですね。 これをhexの”31”だったら数字の”1”として代入してくれる方法などないでしょうか?
お礼
回答頂きありがとうございます。助かります。 今思ったのですが、 >hexで31ならば'1'ですから「数字の1」ではありませんか? >まぁ数値の49でもあるワケですが。 ># ASCIIコードならば…ですが。 ”31”というhexだから、 String^ id_data_str; id_data_str = Wireless_unit[i].wireless_id[k]; このように入れたらいけるのかなと思ったのですが、次のようなエラーが出ました。 1trunk\vc_test\setting_check\homebank\Form1.h(588): error C2440: '=' : 'unsigned char' から 'System::String ^' に変換できません。 1> 使用可能なユーザー定義された変換演算子がない、または 1> 演算型のボックス化された形式からターゲット型への標準変換は存在しません ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== やはり ToString()を使わないといけないのでしょうか?