程序如下,
RDatabase是读者信息类。
1 //构造函数初始化:读文件 2 RDatabase::RDatabase() 3 { 4 cout<<"调用函数"<<endl; 5 Reader s; 6 top=-1; 7 ifstream file; 8 //ios::in以读方式打开文件,ios::binary以二进制方式打开文件(将数据在内存中的存储形式原样输出) 9 file.open("reader.dat",ios::in|ios::binary); 10 while(1) 11 { cout<<0<<endl; 12 file.read((char*)&s,sizeof(s)); 13 if(!file) break; 14 top++; 15 read[top]=s;//rdatabase.h中定义了read数组,为Reader类型 16 } 17 file.close(); 18 cout<<"结束"<<endl; 19 }
其它代码不贴,因为症结在上述程序
运行程序,在输出“调用函数”和“结束”后就显示内存空间不能为read,我在程序的其他函数中都做了标记,确认没有执行其它函数,在执行完贴出来的构造函数后就报错了。。。编译连接都没错,用的是vc6.0,我没学过文件的读写一类的知识。不知道是不是上面贴出来的程序出错了捏。。。求教
单步调试确定出错的位置,构造函数不要做过多的逻辑行为,更不要说文件读写,独立出来一个方法比较好。