这是一个用键盘输入、屏幕输出的例子改写为文件输入、文件读写的例子
一、我们按照下面四个步骤写一个简单的输入数据再排序输出的代码:
1、键盘输入数字
2、输出排序前的列表
3、排序
4、输出排序后的列表
int main()
{
//一、键盘输入数字
list<int> intList; //整数线性表
int temp;
while (cin >> temp) //多次循环输入temp
{
intList.push_back(temp); //把temp压入线性表,输入Ctrl+Z可以结束输入
}
//二、输出排序前的列表
cout << "排序前:";
for (int x : intList)
{
cout << x << " ";
}
cout << endl;
//三、排序
intList.sort(); //list有一个成员函数sort(),可以直接排序
//四、输出排序后的列表
cout << "排序后:";
for (int x : intList)
{
cout << x << " ";
}
}
然后运行一下:

二、创建将要读取和写入的文件
1.在代码的同级文件夹中创建一个in.txt文件

由于编码问题,我们要将文件另存为ANSI编码模式:


2.在文件里写一些数字

3.改写代码:
需要头文件#include <fstream>
int main()
{
//一、从in.txt文件读取数字,压入列表
list<int> intList;
ifstream ifs; //创建文件输入流对象
ifs.open("in.txt"); //通过open()函数打开文件
if (!ifs) //如果打开失败
{
exit(0); //退出
}
int temp;
while (ifs >> temp) //cin是流输入对象,isf也是流输入对象。当读到文件末尾时,循环自动结束
{
intList.push_back(temp); //把temp压入线性表
}
//二、输出排序前的列表
cout << "排序前:";
for (int x : intList)
{
cout << x << " ";
}
cout << endl;
//三、排序
intList.sort(); //list有一个成员函数sort(),可以直接排序
//四、输出排序后的列表到out.txt文件中
ofstream ofs; //创建一个文件流输出对象
ofs.open("out.txt"); //通过open()函数打开文件
if (!ofs) //如果打开失败
{
exit(0); //退出
}
cout << "排序后:";
for (int x : intList)
{
ofs << x << " ";
}
//五、关闭文件
ifs.close();
ofs.close();
}
这篇博客介绍了如何将键盘输入数字并排序的程序改写为从文件读取数字,进行排序,然后将排序结果写入文件。首先创建一个in.txt文件输入数字,使用ifstream读取并压入列表,然后对列表进行排序,最后使用ofstream将排序后的数字写入out.txt文件。
329

被折叠的 条评论
为什么被折叠?



