第13周项目6(2)-体验文件操作

来源:互联网 发布:正品代购软件 编辑:程序博客网 时间:2024/06/05 04:37
/* *Copyright (c) 2014, 烟台大学计算机学院 *All rights reserved. *文件名称:week13-project6-2.cpp *作者:高赞 *完成日期:2014年 11 月 22 日 *版本号:v1.0 * *问题描述:从文件salary.txt中读入工人工资,全部增加20%,            将排序后的结果保存到文件ordered_salary.txt中 */#include <fstream>   //操作文件必写#include <iostream>#include <iomanip>#include <cstdlib>   //调用exit(1)需要包含cstdlibusing namespace std;int main( ){    int i=0;    double a,salary[500];    ifstream infile("salary.txt",ios::in);//测试是否成功打开,打开失败时(如要读的数据文件不存在)退出    if(!infile)    {        cerr<<"open error!"<<endl;        exit(1);    }//下面读取数据并完成处理,若数据需要多次使用,可以读入到数组中    while(infile>>a)  //当到达文件尾,则循环处理结束。类似cin>>a,只不过数据来源于打开的文件    {        salary[i]=a*1.2;        ++i;    }    infile.close();  //读入完毕要关闭文件    ofstream outfile("ordered_salary.txt",ios::out);    if(!outfile)    //测试文件打开操作是否成功    {        cerr<<"open error!"<<endl;        exit(1);//打开不成功,则提示后退出。    }    //用ios::out方式成功打开文件后,可以将数据保存到文件中    //操作中,要用打开的文件对象名(outfile),而不是用文件名      for (int x=0; x<i-1; ++x)        for (int y=0; y<i-1-x; ++y)        {            if(salary[y]>salary[y+1])            {                double t=salary[y+1];                salary[y+1]=salary[y];                salary[y]=t;            }        }    for(int n=0; n<i; ++n)        outfile << setiosflags(ios::fixed) << setprecision(2) << salary[n] << endl;    outfile.close();  //关闭文件。用完了必须关闭,否则会丢失数据    cout<<"处理完毕,请打开文件 ordered_salary.txt 查看结果!"<<endl;    return 0;}




0 0
原创粉丝点击