C++将文件中若干字符串排序后重新输入回文件中
时间: 2024-09-15 07:12:32 浏览: 38
C++代码实例:文件操作和字符串处理
3星 · 编辑精心推荐
在C++中,你可以通过以下步骤将文件中的字符串按某种顺序(如字典序、自定义比较函数等)读取出来,排序后再写回到文件中:
1. **打开文件**:
使用`fstream`库中的`ifstream`打开输入文件(例如`input.txt`),`ofstream`打开输出文件(例如`output.txt`)。
```cpp
#include <fstream>
#include <vector>
#include <algorithm> // 包含sort函数
std::ifstream inputFile("input.txt");
std::ofstream outputFile("output.txt");
```
2. **读取并存储字符串**:
创建一个`std::vector<std::string>`来存储从文件中读取的字符串。使用`getline`逐行读取,直到文件结束。
```cpp
std::vector<std::string> strings;
std::string line;
while (std::getline(inputFile, line)) {
strings.push_back(line);
}
```
3. **排序字符串**:
使用`std::sort`对字符串向量进行排序。如果需要自定义排序规则,可以传递一个比较函数给`sort`。
```cpp
std::sort(strings.begin(), strings.end()); // 默认按照字典序排序
```
4. **写回文件**:
排序后的字符串依次写入到输出文件中。
```cpp
for (const auto& str : strings) {
outputFile << str << std::endl; // 输出每个字符串,每行结尾添加换行符
}
```
5. **关闭文件**:
最后别忘了关闭输入和输出文件。
```cpp
inputFile.close();
outputFile.close();
```
阅读全文