我可以对文件执行无格式写入,然后从文件中为整数类型执行格式化读取吗?

时间:2016-06-17 20:15:58

标签: c++ binaryfiles ifstream ofstream formatted

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

我可以稍后从inputoutput类型相同的文件中执行以下格式化阅读:

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));

1 个答案:

答案 0 :(得分:1)

  

我可以对文件执行无格式写入,然后从文件中为整数类型执行格式化读取吗?

不,你做不到。

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