首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

read()和write()的有关问题

2012-04-01 
read()和write()的问题有如下定义:vector structBlockdataofstreamout(file_name.c_str())其中data中

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()过程用错了,请大家帮忙看看,谢谢。

[解决办法]
ofstream out(file_name.c_str(),ios::binary);

热点排行