環境はVC2005です。
100バイトの0xffが入ったchar配列があり、
CStringに変換したいのですがどのようにしたら良いでしょうか?
===
char test[100];
memset( test, 0xff, sizeof(test) );
CString strTest;
//testをstrTestにいれたいのですが、分かりません。
ご教授お願いいたします。
strTest = test;
でOKです。
しかしこの変換にどんな意味があるのか非常に気になります。
そもそもcharの0xffをCStringに変換するとどうなるべきなんでしょうか?
↓コンストラクタの中から適切なものを探してください。
http://msdn.microsoft.com/ja-jp/library/cws1zdt8(VS.80).aspx
> strTest = test; でOKです。
'\0'終端されてないのに?
返信が遅くなり申し訳ありません。
strTest = test;
または、コンストラクタに入れてもASCII文字に変換されてしまい、100バイトの"0xff"が、
"・・・・・・・・・・・・・・・・(100バイト分続く)"
となってしまいます。
期待値は、
"0xff0xff0xff0xff0xff0xff0xff0xff(100バイト分続く)"
となることです。
お手数ですが、ご教授お願いします。
1バイトだったら
#include <stdio.h>
int main()
{
unsigned char c = 0xff;
printf("0x%2x\n", c);
return 0;
}
のような結果を期待していますか?
0xff というのは数値上の表記ですのでそのまま文字列にはできません。
自前でフォーマットするようにしないといけないです。
フォーマットすれば良いのですね。
解決しました。ありがとうございました。
ツイート | ![]() |