📄 read.h
字号:
//文件read.h(从文件读记录函数read()的实现。
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<iomanip>
#include<string>
using namespace std;
/*********************************从文件读记录函数的实现*************************************/
void read(int select)
{
int max; //定义一个变量,职工最大数变量max.
ifstream fcin("max.dat");
if(fcin.fail())
{
cout<<"文件max.dat打开失败,程序将结束"<<endl;
exit(1);
}
fcin>>max;
fcin.close();
struct _Employee //_Employee结构的定义。
{
int num;
string name;
string sex;
int age;
int wage; //定义结构体数据成员,wage(工资项)
};
_Employee *employee=new _Employee[max]; //定义动态结构体数组。
ifstream fin("name.dat"); //定义一个输入流对象,用于读取文件的记录。
if(fin.fail()) //新建数据文件时不要在文件中多加空格或换行符号。
{
cout<<"文件name.dat打开失败,程序将结束"<<endl;
exit(1);
}
/*******************这个while循环是很容易出错的,注意!*******************/
int i=0;
while(!fin.eof()) //文件末尾检查,如果文件读取没结束,返回0。
{ //即使事空格或换行符,eof函数也会把它当成字符。(注意)
fin>>employee[i].num>>employee[i].name
>>employee[i].sex>>employee[i].age>>employee[i].wage;
i++;
}
max=i;
//cout<<"max="<<max<<endl; //测试当前职工最大数是多少。
fin.close(); //关闭文件name.dat。
if(select==0)
cout<<"/***************文件读取结束****************。"<<endl;
else
{
cout<<"所有职工的原始信息如下:"<<endl;
cout<<"************************************************"<<endl;
cout<<setw(8)<<"职工编号"<<setw(8)<<"姓名"<<setw(8)<<"性别"
<<setw(8)<<"年龄"<<setw(10)<<"工资(元)"<<endl;
for(i=0;i<max;i++)
cout<<setw(8)<<employee[i].num<<setw(8)<<employee[i].name<<setw(8)<<employee[i].sex
<<setw(8)<<employee[i].age<<setw(10)<<employee[i].wage<<endl;
cout<<"************************************************"<<endl;
}
}
/********************************从文件读记录函数结束**************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -