Можно ли выполнить неотформатированную запись в файл, а затем форматированное чтение из файла для целочисленных типов?

Учитывая, что я пишу vector целых чисел во временный файл не отформатирован:

ofstream foo("foo.txt", ios::binary);
const auto length= size(output);

foo.write(reinterpret_cast<const char*>(length), sizeof(length));

if(!empty(input)) foo.write(reinterpret_cast<const char*>(data(output)), sizeof(decltype(output)::value_type) * length);

Могу ли я сделать следующее отформатированное чтение позже из файла, где input тот же тип, что и output:

ifstream foo("foo.txt", ios::binary);
size_t size;

foo.read(reinterpret_cast<char*>(size), sizeof(size));
input.resize(size);

if(!empty(input)) copy(istream_iterator<decltype(output)::value_type>(foo), istream_iterator<decltype(output)::value_type>(), begin(input));

0

Решение

Можно ли выполнить неотформатированную запись в файл, а затем форматированное чтение из файла для целочисленных типов?

Нет, ты не можешь этого сделать.

Содержимое файла, в который записываются данные с использованием неформатированной записи, будет сильно отличаться от форматированной записи. Отформатированное чтение не может точно интерпретировать неформатированные данные.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]