demo_5_file_dat_1_a.cpp

来自「对于一个初涉VC++的人来书」· C++ 代码 · 共 67 行

CPP
67
字号

//***************************************************
// 将一批数据以二进制形式存储在磁盘文件中,而后
// 将存放在磁盘的二进制文件中数据读入内存并显示.
//***************************************************

# include <fstream.h>
# include <stdlib.h>

struct student
{
	char name[20];
	int num;
	int age;
	char sex;
};

int main()
{
	student stud[3]={"Li",1001,18,'f',"Fun",1002,19,'m',"Wang",1004,17,'f'};

//*******************************************************
//	ofstream outfile("stud.dat",ios::binary);
	ofstream outfile;
	outfile.open("stud.dat",ios::binary);

	if(!outfile)
	{
		cerr<<"open error!"<<endl;
		exit(1);
	}

	int i;
//	for(i=0;i<3;i++)
//		outfile.write((char *)&stud[i],sizeof(stud[i]));
	outfile.write((char *)&stud[0],sizeof(stud));

	outfile.close();

//*******************************************************
//	ifstream infile("stud.dat",ios::binary);
	ifstream infile;
	infile.open("stud.dat",ios::binary);

	if(!infile)
	{
		cerr<<"open error!"<<endl;
		exit(1);
	}

//	for(i=0;i<3;i++)
//		infile.read((char*)&stud[i],sizeof(stud[i]));
	infile.read((char *)&stud[0],sizeof(stud));
	
	infile.close();
	
	for(i=0;i<3;i++)
	{
		cout<<"NO."<<i+1<<endl;
		cout<<"name:"<<stud[i].name<<endl;
		cout<<"num:"<<stud[i].num<<endl;
		cout<<"age:"<<stud[i].age<<endl;
		cout<<"sex:"<<stud[i].sex<<endl<<endl;
	}

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?