read()和write()的问题
有如下定义:
vector<struct Block> data;
ofstream out(file_name.c_str());
其中data中有105个元素,用write函数写入文件:
for(i = 0; i < (int)data.size(); i++)
out.write((char *)&data[i],sizeof(struct Block));
out.close();
然后在另一个函数中打开这个文件,用read()函数读取内容:
struct Block testblock;
ifstream test(file_name.c_str());
int num=0
while(! test.eof()){
test.read((char *)&testblock, sizeof(struct Block));
num++; //这是发现问题后为了测试而添加的变量,计算读取的结构体的个数。
}
test.close();
这是我写的程序中的有问题部分的代码,发现读取的结构体数量比原来的105个少(大概只有60个),搞不明白是write()过程用错了还是read()过程用错了,请大家帮忙看看,谢谢。