我有一段代码给出了运行时错误。任何人都可以帮忙找出原因吗?向文件写入布尔值
vector<int> intData;
vector<bool> boolData;
for(int i=0;i<19000;i++)
boolData.push_back(false);
string ofile = "tree.dat";
ofstream fout(ofile.c_str(),ios::out | ios::binary);
if (!boolData.empty()) fout.write((char *)&boolData[0], sizeof(bool)*boolData.size());
fout.close();
它在尝试写入文件(fout.write)时给出错误。
为什么地球上你使用fout.write而不是operator <<? – Puppy 2010-06-09 10:06:06
@DeadMG:因为'operator <<'会将数据格式化为文本;这段代码试图从矢量的内容中生成一个二进制文件。 – 2010-06-09 10:24:36
供参考:http://www.gotw.ca/gotw/050.htm - 如果你有兴趣的矢量 –
Default
2010-07-07 15:50:57