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», поэтому очевидно, что что-то идет не так, а вторая функция не получает 8001.Где происходит сериализация?
Примечание. Я преобразую поток в строку перед отправкой его во вторую функцию.
Где первая функция неправильная?
--- редактировать ----
Да, я был неправ, первая функция на самом деле делает именно то, что он должен, во-вторых, не так, может кто-нибудь, пожалуйста, исправить это?
'std :: istringstream (string) >> a;' это работает? – andre
да, он использовал, я не могу проверить его прямо сейчас, так как строка anyways имеет ложное значение –
вторая функция, я получил ее от самой SO –