文件操作

1.有两个磁盘文件“dfileA”和“dfileB”,各存放一行字母(不多于80个),今要求把两个文件中的信息合并(按字母顺序排列),输出到一个新文件“dfileC”中去。

#include<fstream>

#include<iostream>

#include<set>

usingnamespace std;

intmain()

{

    char i;

    multiset <char> ms;

    ifstream cin1("dfileA.txt");

    char n; 

    while(cin1>>n)

        ms.insert(n);

    ifstream cin2("dfileB.txt");

    char m;

    while(cin2>>m)

        ms.insert(m);

    multiset<char>::iterator it;

    for(it=ms.begin();it!=ms.end();it++)

        cout<<*it;

    ofstream out("dfileC.txt");

    if(out.is_open())

    {

        multiset<char>::iterator it;

        for(it=ms.begin();it!=ms.end();it++)

            out<<*it;

        out.close();

    }

    cout<<endl;

     return 0;

}

dfileA.txt:

    avlcdggghnhjk

dfileB.txt:

    certbkkuajjkkk

运行结果:

aabccdeggghhjjjkkkkkklnrtuv

 2.有十名学生的数据(包括学号、姓名、和三门课程的成绩)存放在文件“score.txt”中,编写程序,把有不及格的学生数据存放到文件“bhg.txt”中,成绩都合格的学生数据存放到文件“hg.txt”中。

#include"stdafx.h"

#include<fstream>

#include<iostream>

#include<vector>

#include<string>

#include<iomanip>

//#include<algorithm>

using namespace std;

struct student

{

    int  xuehao;

    string name;

    double score[3];

};

int main()

{

    ifstream cin("score.txt");

    int xuehao;

    string name;

    string s;

    double score ;

    vector<double> vcj;

    vector<string>v;

    student xs;

    vector<student>vxs;

    for(inti=0;i<5;i++)  {

         cin>>s;

         v.push_back(s);

    }

    for(inti=0;i<10;i++)

    {

         cin>>xuehao;

         xs.xuehao=xuehao;

         cin>>name;

         xs.name=name;

         for(intj=0;j<3;j++)

         {

             cin>>score;

             xs.score[j]=score;

         }

         vxs.push_back(xs);

    }

    ofstream out1("bhg.txt");

    if(out1.is_open())

    {

         for(inti=0;i<5;i++)

             out1<<left<<setw(7)<<v[i];

         out1<<endl;

         vector<student>::iteratorit;

         for(it=vxs.begin();it!=vxs.end();it++)

         {

             int num=0;

             for(inti=0;i<3;i++)

             {

                  if((*it).score[i]<60)

                      num++;

             }

             if(num!=0)

                  {

                      out1<<left<<setw(7)<<(*it).xuehao<<left<<setw(7)<<(*it).name;

                      for(inti=0;i<3;i++)

                          out1<<left<<setw(7)<<(*it).score[i];

                      out1<<endl;

                  }

         }

             out1.close();

    }

    ofstream out2("hg.txt");

    if(out2.is_open())

    {

         for(inti=0;i<5;i++)

             out2<<left<<setw(7)<<v[i];

         out2<<endl;

         vector<student>::iteratorit;

         for(it=vxs.begin();it!=vxs.end();it++)

         {

             int num=0;

             for(inti=0;i<3;i++)

             {

                  if((*it).score[i]<60)

                      num++;

             }

             if(num==0)

                  {

                      out2<<left<<setw(7)<<(*it).xuehao<<left<<setw(7)<<(*it).name;

                      for(inti=0;i<3;i++)

                          out2<<left<<setw(7)<<(*it).score[i];

                      out2<<endl;

                  }

         }

             out2.close();

    }

    return 0;

}

             out1.close();

    }

    ofstream out2("hg.txt");

    if(out2.is_open())

    {

         for(inti=0;i<5;i++)

             out2<<left<<setw(7)<<v[i];

         out2<<endl;

 

         vector<student>::iteratorit;

         for(it=vxs.begin();it!=vxs.end();it++)

         {

             int num=0;

             for(inti=0;i<3;i++)

             {

                  if((*it).score[i]<60)

                      num++;

             }

             if(num==0)

                  {

                      out2<<left<<setw(7)<<(*it).xuehao<<left<<setw(7)<<(*it).name;

                      for(inti=0;i<3;i++)

                          out2<<left<<setw(7)<<(*it).score[i];

                      out2<<endl;

                  }

         }

             out2.close();

    }

    return 0;

}

Score.txt:

学号   姓名    语文    数学    英语

201401  宋江      100     86      66

201402   卢俊义     95     45      78

201403   吴用       88     61      59

201404   公孙胜     56     99      100

201405   关胜       99     88      77

201406   林冲       89     89      89

201407   秦明   65      78      95

201408   呼延灼     98     97      76

201409   花荣       85     78      89

201410   柴进       78     69      66

运行结果:

Bhg.txt:

学号   姓名   语文   数学   英语  

201402 卢俊义 95     45    78    

201403 吴用  88     61     59    

201404 公孙胜 56     99    100   

Hg.txt

学号   姓名   语文   数学   英语  

201401 宋江  100    86     66    

201405 关胜  99     88     77    

201406 林冲  89     89     89    

201407 秦明  65     78     95    

201408 呼延灼 98     97    76    

201409 花荣  85     78     89    

201410 柴进  78     69     66     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值