求c++题目,文本文件a.txt每行存放一个整数且按从小到大存放,要求将输入的1个整数x放入此文件,且保证文件中数据依然有序。(基于顺序文件的读写操作),谢谢!
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int x;
cout << "请输入一个整数:";
cin >> x;
ifstream in("a.txt"); // 以读模式打开文件
ofstream out("temp.txt"); // 以写模式打开一个临时文件
int num;
bool is_inserted = false;
while (in >> num) { // 读取文件中所有的整数
if (num > x && !is_inserted) { // 如果找到第一个大于x的整数
out << x << endl; // 先将x写入临时文件
is_inserted = true;
}
out << num << endl; // 把当前整数写入临时文件
}
if (!is_inserted) { // 如果x是最大的整数,插入到文件末尾
out << x << endl;
}
in.close();
out.close();
remove("a.txt"); // 删除原文件
rename("temp.txt", "a.txt"); // 重命名临时文件为原文件名
cout << "插入成功!" << endl;
return 0;
}
C语言中文件读写也是相当重要的一块,在进行二进制文件逐字节读写时,使用C语言会异常好用。文件指针也是个让人抓脑袋的东西,移动文件指针的函数利用好可以有大作用。