📄 demo_4_file_txt_3_a.cpp
字号:
//****************************************************
// 将职工工资存入文本文件中,再读出显示并统计总工资数.
//****************************************************
// 文本文件的输入输出: 读写用流的插入和提取运算符.
// 注意: 写入数据时,每个数据项之间插入空格作为分隔,
// 而每个职工的数据之间则插入换行符作为分隔,
// 这种处理对于用提取运算符读取数据是必要的.
// 注意: 所有空格、制表符、换行符等都可作数据之间分隔,
// 因此,在职工名字等字符串中就不可再出现空格.
//****************************************************
# include <fstream.h> //该头文件包含iostream.h
# include <stdlib.h>
const char *salary_file="Salary.txt";
int main()
{
ifstream input_file; //输入文件流
ofstream output_file; //输出文件流
int code; //职工编号
char name[20]; //职工姓名
float salary; //职工工资
float total_salary; //职工总工资
output_file.open(salary_file);
if(!output_file)
{
cerr<<"Open salary file error!"<<endl;
exit(1);
}
//注意: 输入数据项时必须插入分隔符.
//注意: 总共51个字符+1个文本文件的结束符=52个字符(endl与'\'等价处理)
// 1个换行符转换为回车和换行2个字符写入文本文件(打开本文文件会发现多了1行!),
// 而且读取文本时回车和换行2个字符又合并为1个换行符,
// 这样,内存中的字符和写入文件中的字符不是一一对应关系.
// 最后,文本文件还有一个结束控制符.
// output_file<<1001<<" "<<"Malin"<<" "<<8000.00f<<endl;
// output_file<<1003<<" "<<"Wanghao"<<" "<<7000.00f<<endl;
// output_file<<1006<<" "<<"Chenqi"<<" "<<6500.00f<<endl;
output_file<<1001<<" "<<"Malin"<<" "<<8000.00f<<'\n';
output_file<<1003<<" "<<"Wanghao"<<" "<<7000.00f<<'\n';
output_file<<1006<<" "<<"Chenqi"<<" "<<6500.00f<<'\n';
//注意: 每个职工的数据之间分隔符的不同仅仅影响文件组织形式(分行或一行),
// 并不影响后面的读取数据的操作.
//注意: 总共51个字符+1个文本文件的结束符=52个字符
// output_file<<1001<<" "<<"Malin"<<" "<<8000.00f<<" ";
// output_file<<1003<<" "<<"Wanghao"<<" "<<7000.00f<<" ";
// output_file<<1006<<" "<<"Chenqi"<<" "<<6500.00f<<" ";
output_file.close();
input_file.open(salary_file);
if(!input_file)
{
cerr<<"Open salary file error!"<<endl;
exit(1);
}
total_salary=0;
for(int loop=1;loop<=3;loop++)
{
input_file>>code>>name>>salary;
cout<<code<<" "<<name<<" "<<salary<<endl;
total_salary=total_salary+salary;
}
cout<<"Total salary: "<<total_salary<<endl;
input_file.close();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -