txt2csv

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 函数:创建并写入CSV文件的第一列字符
void createCSVFileWithFirstColumn(const char *outputFilePath) {
	FILE *csvFile = NULL;
	errno_t err = fopen_s(&csvFile, outputFilePath, "w");
	if (err != 0 || csvFile == NULL) {
		printf("无法创建或打开文件 %s\n", outputFilePath);
		return;
	}

	// 写入字符串到CSV文件的第一列
	fprintf(csvFile, "\"a1\"\n");
	fprintf(csvFile, "\"a2\"\n");
	fprintf(csvFile, "\"e3\"\n");

	fclose(csvFile);
	printf("字符串已成功写入到 %s 的第一列\n", outputFilePath);
}

// 函数:将两个txt文件内容写入CSV文件的第二列
void appendToCSVFile(const char *outputFilePath, const char *filePath1, const char *filePath2) {
	FILE *csvFile = NULL;
	errno_t err = fopen_s(&csvFile, outputFilePath, "a");
	if (err != 0 || csvFile == NULL) {
		printf("无法打开文件 %s\n", outputFilePath);
		return;
	}

	// 读取并写入第一个txt文件
	FILE *file1 = NULL;
	err = fopen_s(&file1, filePath1, "r");
	if (err == 0 && file1 != NULL) {
		char line[1000];
		while (fgets(line, sizeof(line), file1) != NULL) {
			// 去除行尾的换行符
			line[strcspn(line, "\n")] = '\0';
			// 写入CSV文件的第二列,并添加逗号分隔符
			fprintf(csvFile, ",\"%s\"", line);
		}
		fclose(file1);
	}

	// 读取并写入第二个txt文件
	FILE *file2 = NULL;
	err = fopen_s(&file2, filePath2, "r");
	if (err == 0 && file2 != NULL) {
		char line[1000];
		while (fgets(line, sizeof(line), file2) != NULL) {
			// 去除行尾的换行符
			line[strcspn(line, "\n")] = '\0';
			// 写入CSV文件的第二列,并添加逗号分隔符
			fprintf(csvFile, ",\"%s\"", line);
		}
		fclose(file2);
	}

	fclose(csvFile);
	printf("文件内容已成功写入到 %s 的第二列\n", outputFilePath);
}

int main() {
	const char *filePath1 = "D:\\Visual_studio\\Project\\Project1\\txt2csv\\test1.txt";
	const char *filePath2 = "D:\\Visual_studio\\Project\\Project1\\txt2csv\\test2.txt";
	const char *outputFilePath = "D:\\Visual_studio\\Project\\Project1\\txt2csv\\output.csv";

	// 检查output.csv文件是否存在
	FILE *checkFile = NULL;
	errno_t err = fopen_s(&checkFile, outputFilePath, "r");
	if (err != 0 || checkFile == NULL) {
		// 如果output.csv不存在,创建并写入第一列字符
		createCSVFileWithFirstColumn(outputFilePath);
	}
	else {
		fclose(checkFile);
	}

	// 将两个txt文件内容写入output.csv的第二列
	appendToCSVFile(outputFilePath, filePath1, filePath2);

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值