关于c++的文件流操作 ]/* 编程实现以下功能: (1) 按职工号由小到大的顺序将5个员工的数据

关于c++的文件流操作]/*编程实现以下功能:(1)按职工号由小到大的顺序将5个员工的数据(包括号码,姓名年龄,工资)输出到磁盘文件中保存.(2)从键盘输入两个员工(职工... 关于c++的文件流操作 ]/* 编程实现以下功能: (1) 按职工号由小到大的顺序将5个员工的数据(包括号码,姓名年龄,工资)输出到磁盘文件中保存. (2)从键盘输入两个员工(职工号大于已有的职工号),增加到文件的末尾。 (3)将磁盘文件中的数据全部读入程序然后在显示器显示. (4)从键盘输入一个号码,从文件中查找有无此职工号,如有则显示此职工是第几职工,以及此职工的全部数据, 如果没有就输出"无此人".可以反复多次查询,如果输入查找的职工号为0,就结束查询. 要求:用类和对象数组实现. */ //问题:输出第一个员工数据时正常,但从第二个数据开始都是乱码 #include<iostream> #include<fstream> #include<stdio.h> #define LEN sizeof(struct Worker) using namespace std; struct Worker { int number; char name[100]; int age; int wage; friend ostream & operator<<(ostream &output,Worker &w); }; struct Worker w[5]={{10101,"Li Lin",39,8000},{10102,"Zhang Fun",40,10000},{10104,"Zhang Min",34,7000}, {10103,"Wang Min",34,7000},{10105,"Wang Lin",34,8000}}; ostream & operator<<(ostream &output,Worker &w) { output<<"工号"<<w.number<<endl; output<<"姓名"<<w.name<<endl; output<<"年龄"<<w.age<<endl; output<<"工资"<<w.wage<<endl; return output; } void build_data(struct Worker w)//新建结构体数据 { cout<<"请输入职工数据:"<<endl; cout<<"工号:"; cin>>w.number; cout<<"姓名(请勿用空格简短):"; cin>>w.name; cout<<"年龄:"; cin>>w.age; cout<<"工资:"; cin>>w.wage; } void save_to_file(struct Worker w)//向磁盘文件添加数据的函数 { ofstream outfile("work.dat",ios::out|ios::binary); if(!outfile) { cerr<<"新数据储存失败!"<<endl; abort(); } outfile.seekp(0,ios::end); outfile.write((char *)&w,sizeof(w)); outfile.close(); cout<<"新数据储存完毕。"<<endl; } Worker seek(int n) { struct Worker w; ifstream infile("work. 展开
 我来答
王一如热i21
2014-05-11
知道答主
回答量:8
采纳率:0%
帮助的人:7.6万
展开全部
你可以去搜索 编@程=回=忆=录=之=unity3d哦,这是一个简单易懂很适合新手学习的软件 对你的问题是有帮助的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式