値が 1 の unsigned char を取得しました。これを「1」のような文字列に入れる必要があります。しかし、これを文字列ストリームに直接入れようとすると、char(1) の値が取得され、「1」である必要があります。これを関数atoiに入れることができれば、「1」の値が返されることを私は知っています。しかし、charにキャストしてatoi関数に入れようとしましたが、例外がスローされます。すでに文字列に入れようとしましたが、c_str() を atoi 関数にキャストしましたが、まだ成功していません。誰かが私を助けることができれば、私は感謝します。
2623 次
3 に答える
3
に挿入char
する前に、をキャストするだけです。int
std::stringstream
ss << static_cast<int>(c);
char
これにより、の値は文字ではなく数値として扱われます。
于 2013-03-04T12:14:38.483 に答える
1
ここで2つの機能を混同していると思います。
整数を文字列に変換したい。
atoi
(ASCIIから整数へ)ただし、文字列を取り、それを整数に解析して"123"
、123
.
itoa
ここで、このプロトタイプを持つ関数を探しています。
char * itoa ( int value, char * str, int base );
あなたの場合、これは次のようになります。
char Buf[10];
itoa(123, Buf, 10);
printf("%s", Buf); //Outputs 123
itoa は一部のコンパイラでサポートされていますが、標準の一部ではないことに注意してください。より標準に準拠したバージョンを使用するには:
sprintf(Buf, "%d", 123);
もちろん、これはすべて単純な C ですが、どの C++ コンパイラでも同じように動作します。
于 2013-03-04T12:19:49.087 に答える
0
[0,9] の範囲の数値を対応する文字に変換するには、'0'
それに追加するだけです。これは、すべてのシステムで動作することが保証されています。
于 2013-03-04T13:30:23.253 に答える