1

どのように置くのですか:

int32_t x = someValue;

私のchar配列に:

char * msg = new char[65546]();

どんな助けでも大歓迎です!

4

3 に答える 3

3

それは、配列に値を格納する方法に完全に依存します。バイトごとに保存する場合は、次のコードを使用できます。

 int32_t x=someValue;
 char *ptr = (char*)&x;
 char *msg = new char[5];
 for(int i=0;i<4;++i, ++ptr)
    msg[i] = *ptr;

上記の方法を使用する際は注意が必要です。一部のシステムはビッグエンディアンを使用し、他のシステムはリトルエンディアンを使用する可能性があるためです。

一方、数字ごとにchar配列に格納する場合は、次を使用します。

 int32_t x=someValue;
 int digs[12], count=0;
 char *msg = new char[12];
 while(x>0)
 {
     digs[count++]=x%10;
     x/=10;
 }
 int i=0;
 while(count--)
 {
     msg[i++] = digs[count] +'0';
 }

どちらの方法でも機能します。しかし、2番目のものを好む方が良いです。整数に戻すのは簡単だからです。

于 2013-09-18T16:51:39.900 に答える
2

値を印刷したい場合は、なぜそれをしないのですか?

std::cout << "x = " << x << '\n';
于 2013-09-18T16:51:42.713 に答える