【发布时间】:2009-01-13 18:23:57
【问题描述】:
以下代码,当使用 g++ 编译和运行时, 打印 '1' 两次,而我希望打印 '1' 只有一次,因为我正在倾倒一个单一的结构 该文件,但在回读时它似乎是 读取两个结构。为什么?
#include <iostream.h>
#include <fstream.h>
int main(){
struct student
{
int rollNo;
};
struct student stud1;
stud1.rollNo = 1;
ofstream fout;
fout.open("stu1.dat");
fout.write((char*)&stud1,sizeof(stud1));
fout.close();
ifstream filin("stu1.dat");
struct student tmpStu;
while(!filin.eof())
{
filin.read((char*)&tmpStu,sizeof(tmpStu));
cout << tmpStu.rollNo << endl;
}
filin.close();
}
【问题讨论】: