非常に基本的な質問です。aを実際の文字を指すchar
aに変換する際に問題が発生しています。char*
グーグルは、strcpy、string、sprintf などに関する情報をもたらしました。問題を理解しようと何度も何度も試みた後、私はまだそれを機能させることができません。
recv_msg
必要な文字の ASCII 値を含む文字配列があります。文字 (値ではなく) を vector に格納する必要がありますmsg
。
私が持っているもの:
std::vector<char> msg;
char recv_msg[max_buffer_length];
...
int i;
for (i=0;i<bytes_transferred;i++) {
msg.push_back(recv_msg[i]);
}
// Problem: when I process my msg I see 49 instead of '1'.
健全性チェックとして次のことを行うと、必要な動作が得られます。つまり、53 (5 の ASCII コード) ではなく、「5」が表示されます。
std::vector<char*> msg;
...
int i;
char *val;
for (i=0;i<bytes_transferred;i++) {
msg.push_back(val);
}
// No problem: when I process my msg I see '5' instead of 53.
そのため、ASCII コード値 ( char
) を文字表現 ( ) に変換する必要がありますchar *
。一体どうやってこれを行うのですか?
この段階で問題を解決したいのですが、メッセージを処理するときに ASCII -> 文字変換を行う必要はありません。