第7章 第5题

#include<iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;

struct staff
{
	int num;
	char name[20];
	int age;
	double pay;
};

int main()
{
	staff staf[7]={3898,"Fan",34,1200,3899,"Wang",23,6740,2448,"Chen",54,778,
					3000,"Du",45,4763,3301,"Ling",39,6555},staf1;
	fstream iofile("staff.dat",ios::in|ios::out|ios::binary);
	if(!iofile)
	{
		cerr<<"open error!"<<endl;
		abort();
	}
	int i,m,num;
	cout<<"Five staff :"<<endl;
	for(i=0;i<5;i++)
	{
		cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl;
		iofile.write((char *)&staf[i],sizeof(staf[i]));
	}
	cout<<"please input data you want insert:"<<endl;
	for(i=0;i<2;i++)
	{
		cin>>staf1.num>>staf1.name>>staf1.age>>staf1.pay;
		iofile.seekp(0,ios::end);
		iofile.write((char *)&staf1,sizeof(staf1));
	}
	iofile.seekg(0,ios::beg);
	for(i=0;i<7;i++)
	{
		iofile.read((char *)&staf[i],sizeof(staf[i]));
		cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl;
	}
	bool find;
	cout<<"enter number you want search,enter 0 to stop.";
	cin>>num;
	while(num)
	{
		find=false;
		iofile.seekg(0,ios::beg);
		for(i=0;i<7;i++)
		{
			iofile.read((char *)&staf[i],sizeof(staf[i]));
			if(num==staf[i].num)
			{
				m=iofile.tellg();
				cout<<num<<" is No."<<m/sizeof(staf1)<<endl;
				cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl;
				find=true;
				break;
			}
		}
		if(!find)
			cout<<"can't find "<<num<<endl;
			cout<<"enter number you want search,enter 0 to stop.";
			cin>>num;
	}
	iofile.close();
	return 0;
}
<img src="https://img-blog.csdn.net/20150608232426092" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);" alt="" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值