您的位置:首页 > 其它

第五题

2015-06-08 22:58 232 查看
#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]={2101,"Li",34,1203,2104,"Wang",23,674.5,2108,"Fun",54,778,
3006,"Xue",45,476.5,5101,"Ling",39,656.6},staf1;
fstream iofile("staff.dat");
if(!iofile)
{cerr<<"open error!"<<endl;
exit(1);
}
int i,m,num;
cout<<"五个员工 :"<<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<<"输入号码(0结束):"<<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<<"查询.";
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<<"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<<"NOT FOUNT "<<num<<endl;
cout<<"输入号码(0结束).";
cin>>num;
}
iofile.close();
return 0;
}
文件出错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: