C++文件流
例13.12 将一批数据以二进制形式存放在磁盘文件中,再读入内存并在显示器上显示
//例13.12 将一批数据以二进制形式存放在磁盘文件中,再读入内存并在显示器上显示
#include <iostream>
#include <fstream>
using namespace std;
struct student {
char name[20];
int num;
int age;
char sex;
};
int main() {
student stud[3]{ "Li",1001,18,'f',"Fang",1002,19,'m',"Wang",1004,17,'f' };
ofstream outfile("stud.dat", ios::binary); //建立输出文件流对象outfile,以二进制文件方式打开磁盘文件stud.dat
if (!outfile) {
cerr << "open error!\n";
abort(); //退出程序
}
outfile.write((char*)stud, sizeof(stud)); //for (int i = 0; i < 3; i++) outfile.write((char*)&stud[i], sizeof(stud[i]));
outfile.close();
ifstream infile("stud.dat", ios::binary);
if (!infile) {
cerr << "open error!\n";
abort(); //退出程序
}
infile.read((char*)stud, sizeof(stud)); //for (int i = 0; i < 3; i++) infile.read((char*)&stud[i], sizeof(stud[i]));
infile.close();
for (int i = 0; i < 3; i++) {
cout << "NO." << i + 1 << endl
<< "name:" << stud[i].name << endl
<< "age:" << stud[i].age << endl
<< "sex:" << stud[i].sex << "\n\n";
}
return 0;
}