#include<iostream> #include<fstream> using namespace std; int main(int argc, char *argv[]) { int n=5; double x[n]; ofstream fileStream("/data/workspace/myshixun/file1.dat",ios::out); //打开file1.dat,并向其中写入20个输入数据 /********begin********/ /*************end******/ ifstream ifile; ifile.open("/data/workspace/myshixun/file1.dat"); //打开file1.dat,并从其中读入10个数据存入x[n]中,并对x[n]进行排序 /**********begin***********/ /***********end*********/ ofstream f2("/data/workspace/myshixun/file2.dat",ios::out); //将x[n]排序后的数据写入file2.dat /*********begin*********/ /**********end********/ ifile.open("/data/workspace/myshixun/file2.dat"); if(!ifile.is_open()) { cout<<"open file1.data fail!"<<endl; exit(EXIT_FAILURE); } for(int i=0;i<n;i++) { ifile>>x[i]; } ifile.close(); for(int i=0;i<n;i++) cout<<x[i]<<" "; return 0; }编写一个能实现文件读取的程序。 相关知识
时间: 2025-06-23 09:53:38 浏览: 12
### C++ 文件读取、数据写入和排序功能的实现
以下是一个完整的 C++ 程序示例,它能够从文件中读取数据,对数据进行排序,并将排序后的结果写入另一个文件。
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
// 定义变量
vector<int> numbers; // 存储从文件读取的数据
int number;
// 打开输入文件
ifstream inFile("input.txt", ios::in);
if (!inFile) {
cerr << "无法打开输入文件!" << endl;
return 1;
}
// 从文件中读取整数并存储到 vector 中
while (inFile >> number) {
numbers.push_back(number);
}
inFile.close(); // 关闭输入文件
// 对数据进行排序
sort(numbers.begin(), numbers.end()); // 使用标准库中的 sort 函数[^2]
// 打开输出文件
ofstream outFile("output.txt", ios::out);
if (!outFile) {
cerr << "无法打开输出文件!" << endl;
return 1;
}
// 将排序后的数据写入输出文件
for (const auto& num : numbers) {
outFile << num << " ";
}
outFile.close(); // 关闭输出文件
cout << "数据已成功读取、排序并写入文件!" << endl;
return 0;
}
```
#### 代码说明
- **文件读取**:通过 `ifstream` 类以文本模式打开文件 `input.txt`,并使用循环逐个读取文件中的整数[^4]。
- **数据存储与排序**:将读取的整数存储到 `std::vector` 中,然后调用 `std::sort` 函数对其进行排序[^2]。
- **文件写入**:通过 `ofstream` 类以文本模式打开文件 `output.txt`,并将排序后的数据逐个写入文件[^5]。
### 注意事项
- 如果输入文件不存在或无法打开,程序会输出错误信息并终止运行。
- 排序算法使用了 C++ 标准库中的 `std::sort`,其时间复杂度为 \(O(n \log n)\)[^2]。
- 确保在运行程序前创建 `input.txt` 文件,并将其放置在程序的工作目录下。
---
阅读全文
相关推荐



















