?? 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 + -