0

鉴于我将一个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));
4

1 回答 1

1

我可以先对文件进行无格式写入,然后再对文件进行格式化读取以获取整数类型吗?

不,你不能那样做。

使用无格式写入写入数据的文件的内容将与格式化写入有很大不同。格式化的读取无法准确解释未格式化的数据。

于 2016-06-17T20:26:04.397 回答