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