首先是题目
【问题描述】
请编写一个程序,实现如下功能
a.txt文件中已经预先存储了一组数据,以空格分隔,数据的个数不确定。
从a.txt文件中读取数据,并将从小到大排序后的数据输出到b.txt文件
b.txt文件中数据以空格分隔
【输入形式】
输入文件名:a.txt
【输出形式】
输出文件名:b.txt
然后是代码
#include <iostream>
#include<fstream>//文件输出输入流的库
#include<vector>//使用vector数组,解决数据个数不确定的问题
#include <algorithm>//使用这个库中的sort函数,简化代码
using namespace std;
int main()
{
fstream a, b;//定义两个数据流
a.open("a.txt", ios::in);//读取打开文件,注意是ios::in
vector<double> data;//定义一个vector数组,储存数据
double x;
while (a >> x)从a文件中读取数据
{
data.push_back(x);//在vector数组中增加成员
}
sort(data.begin(), data.end());//从小到大排序
b.open("b.txt", ios::out);//输入(写)打开文件,注意是ios::out
if (b)
{
for (int i=0;i<data.size(); i++)//注意data.size后面要加(),表示data数组共有多少个成员
{
b << data[i] << " ";//一个一个将数据输出到b
}
}
a.close();//一定要关闭文件!!!
b.close();//一定要关闭文件!!!
return 0;
}
总结:题目本身简单,就是新知识用起来不是很熟练。
fstream:输入和输出文件
ifsteam:输入文件
ofstream:输出文件
输入和输出直接 参数名+"<<"或者“>>”+要输入输出的内容