2013-08-10 1 views
1

Я ищу способ записи неформатированных данных в память с использованием стандартной библиотеки C++. Мне нужен класс, который наследует istream/ostream и работает как ifstream/ofstream, но поддерживается памятью, а не файлом на диске.unformatted i/o to и из памяти

Таким образом, я могу работать с istreams и ostreams и использовать оператор < < и оператор >> для чтения/записи двоичных данных, и мне не нужно знать, передаются ли данные в память или на диск.

Я думал, возможно, что istringstream/ostringstream может быть сконфигурирован для записи неформатированного вывода через оператор < < и оператора >>, но я не мог видеть простой способ сделать это.

Так что я не смог найти ничего подобного в стандартной библиотеке C++ или в boost, но похоже, что это должно быть там. Любые советы были бы очень признательны!

ответ

2

Вы не можете использовать << и >> операторов записи/чтения неформатированных данных (они имеют дело только с текстовым вводом и выводом), но вы можете использовать метод write выходных потоков и read метода входных потоков.

И поскольку std::string действительно не заботятся о хранящихся данных, вы должны иметь возможность использовать stringstream (и его варианты вывода/ввода).

+0

Это не похоже на то, что stringstream будет работать, поскольку он всегда хочет форматировать числа в виде строк, например. 173 отображается как «173» не как 0xAD. – nonagon

Смежные вопросы