void insert_into_stream(std::ostream& stream, int number)
{
int length = sizeof(int);
char insert_buffer[sizeof(int)];
memcpy(insert_buffer, &number, length);
stream.write(insert_buffer, length);
}
int int_from_string(std::string string)
{
int a;
std::istringstream(string)>>a;
return a;
}
このコードは以前は機能していましたが、どのようなわずかな変更を行ったか覚えていないため、機能しなくなりました。数値 (たとえば 8001) が入ってきて、最後のステートメントの直前にデバッグしている場合、insert_buffer には「A」が含まれているため、明らかに何かがうまくいかず、2 番目の関数は 8001 を取得しません。
注 - ストリームを 2 番目の関数に送信する前に文字列に変換します。
最初の関数のどこが間違っていますか?
- -編集 - -
はい、私は間違っていました。最初の関数は実際に本来あるべきことを正確に実行していますが、2 番目の関数は間違っています。誰か修正してもらえますか?