#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>
#include <iomanip>
using namespace std;
void findAndReplaceAll(string& source, const string& find, const string& replace) {
size_t startPos = 0;
while ((startPos = source.find(find, startPos)) != string::npos) {
source.replace(startPos, find.length(), replace);
startPos += replace.length();
}
}
int main() {
// 输入的txt文件路径
//string inputFilePath = "D:/C++---无人机/CODE/strAndFileTest/file/in.txt";
string inputFilePath = "D:/C++---file/in.txt";
// 输出的Excel文件路径
string outputFilePath = "D:\\C++---file\\out.csv";
// 打开txt文件
ifstream inputFile(inputFilePath.c_str()); // 修改此处
// 检查文件是否成功打开
if (!inputFile.is_open()) {
cerr << "无法打开文件: " << inputFilePath << endl;
perror("打开文件失败的原因");
return 1; // 退出程序,返回错误码
}
// 读取文件的每一行并进行查找和替换操作
vector<string> lines;
string line;
while (getline(inputFile, line)) {
// 连续查找和替换的字符串
string find1 = "a";
string replace1 = "b";
string find2 = "mm";
string replace2 = "xx";
// 连续查找和替换操作
findAndReplaceAll(line, find1, replace1);
findAndReplaceAll(line, find2, replace2);
// 存储处理后的每一行
lines.push_back(line);
}
// 关闭txt文件
inputFile.close();
// 打开Excel文件进行写入
ofstream outputFile(outputFilePath.c_str()); // 修改此处
// 检查文件是否成功打开
if (!outputFile.is_open()) {
cerr << "无法打开文件以写入: " << outputFilePath << endl;
return 1; // 退出程序,返回错误码
}
// 写入Excel文件,使用逗号分隔值(CSV)格式
for (size_t i = 0; i < lines.size(); ++i) {
outputFile << lines[i] << endl;
}
// 关闭Excel文件
outputFile.close();
cout << "Excel文件生成完成。" << endl;
return 0; // 程序正常退出
}
源文件
生成后的文件