c++ 按行读取文件 并将内容筛选后存入到另外一个文件中
时间: 2024-03-23 16:36:39 浏览: 20
好的,可以参考以下代码实现:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
// 打开源文件
ifstream infile("source.txt");
if (!infile.is_open()) {
cout << "无法打开源文件" << endl;
return 0;
}
// 打开目标文件
ofstream outfile("target.txt");
if (!outfile.is_open()) {
cout << "无法打开目标文件" << endl;
return 0;
}
string line;
while (getline(infile, line)) { // 按行读取源文件
// 进行筛选,此处假设只保留包含字母的行
bool has_alpha = false;
for (char c : line) {
if (isalpha(c)) {
has_alpha = true;
break;
}
}
if (has_alpha) { // 写入目标文件
outfile << line << endl;
}
}
// 关闭文件
infile.close();
outfile.close();
return 0;
}
```
这段代码中,我们使用了 `ifstream` 和 `ofstream` 两个类来分别读取源文件和写入目标文件。通过 `getline` 函数按行读取源文件,并对每一行进行筛选。此处的筛选条件是,只保留包含字母的行。如果满足条件,则将该行写入目标文件。
注意,在使用文件流时,需要在程序结束前关闭文件,以释放资源。