首页 > 编程语言 >C++---打开txt文件进行字符串的查找替换最终生成Excel文件

C++---打开txt文件进行字符串的查找替换最终生成Excel文件

时间:2024-01-16 16:32:02浏览次数:28  
标签:文件 include string Excel C++ startPos txt line


#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; // 程序正常退出
}

源文件

C++---打开txt文件进行字符串的查找替换最终生成Excel文件_开发语言

生成后的文件

C++---打开txt文件进行字符串的查找替换最终生成Excel文件_excel_02


标签:文件,include,string,Excel,C++,startPos,txt,line
From: https://blog.51cto.com/u_15305087/9273791

相关文章

  • 关于命令行修改K8s内Prometheus配置文件参数
    #登录master节点操作1、进入prometheus介质目录:[root@k8s-master01]$cd/yang/operator/operator-0.7/manifests/prometheus2、备份prometheus配置文件[root@k8s-master01]$cpprometheus-prometheus.yamlprometheus-prometheus.yaml.202312153、编辑prometheus配置文件修......
  • Springboot上传文件大小限制处理
    今天在开发过程中遇到一个文件上传的问题io.undertow.server.RequestTooBigException:UT000020:Connectionterminatedasrequestwaslargerthan10485760Servlet容器使用的是undertow,看异常信息应该是默认存在10MB的文件大小限制。百度了一下,找到如下配置,问题得以解决,记......
  • 企业文件加密软件卸载后电脑还能正常使用吗?
    卸载企业防泄密软件的决定可能出于多种原因,合理与否,都应该谨慎操作。企业文件加密系统卸载后,未解密的文件将无法再正常打开编辑,其保护功能将会消失,也可能破坏数据的完整性,为此可能产生的具体问题如下:1.加密文件的访问问题:如果在卸载文件加密系统前没有解密所有已加密的文件,那......
  • AntDesign文件上传前端文件类型控制 不采用Upload.IGNORE来限制出现在upload_list中
    <a-form-item label="附件" :label-col="{span:4}" :wrapperCol="{span:4}" :colon="false" > <divclass="upload"> <a-upload :fileList="uploadFileList&qu......
  • 批量导出Excel打包成压缩包
    PgSchoolCalendarWeekManagePageQrypgSchoolCalendarWeekManagePageQry=newPgSchoolCalendarWeekManagePageQry();pgSchoolCalendarWeekManagePageQry.setPgSemesterManageId(pgTeachingSchedulingCurriculumQry.getPgSemesterManageId());pgSchoolCalendarWeekManagePage......
  • jenkins中配置linux/windows脚本: python文件传dict参数
    1)前提:jenkinjob中选择linux脚本:如果是传dict参数,那么需要在py文件后跟单引号(跟双引号会报错):正确得案例: 2)前提:jenkinjob中选择windos脚本:如果是传dict参数,那么需要在py文件后跟双引号(跟单引号会报错),dict中得双引号也需要\''转义:正确得案例: ......
  • 深入了解 ReadDirectoryChangesW 并应用其监控文件目录
    简介监视指定目录的更改,并将有关更改的信息打印到控制台,该功能的实现不仅可以在内核层,在应用层同样可以。程序中使用ReadDirectoryChangesW函数来监视目录中的更改,并使用FILE_NOTIFY_INFORMATION结构来获取有关更改的信息。ReadDirectoryChangesW是Windows提供一个函数......
  • c++重载
    注意:函数的返回值不可以作为函数重载的条件函数重载的注意事项1.引用作为重载的条件2.函数重载遇到函数默认参数......
  • 文件IO-fwrite-fread-fscanf-fflush
    fwrite把ptr所指向的数组中的数据写入到给定流stream中。size_tfwrite(constvoid*ptr,size_tsize,size_tnmemb,FILE*stream)参数ptr--这是指向要被写入的元素数组的指针。size--这是要被写入的每个元素的大小,以字节为单位。nmemb--这是元素的个数,每个元......
  • linux or macos 将当前脚本文件以某个方式执行:#! /usr/bin/env
    #!/usr/bin/env 在linux的一些bash的脚本,需在开头一行指定脚本的解释程序,如: #!/usr/bin/envpython但是也有直接写绝对路径的#!/usr/bin/python这个的虽然可以,但是如果我们将脚本换了一台设备,可能它的python并非安装在此处,则需要更换相反:#!/usr/bin/envpython,它是从环境......