找到所有匹配的项然后把结果输出到一个csv文件中
时间: 2024-04-12 18:32:05 浏览: 19
好的,以下是修改后的代码,可以找到所有匹配的项并将结果输出到一个CSV文件中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 1024
#define MAX_FIELD_LENGTH 256
int main() {
FILE *file;
char line[MAX_LINE_LENGTH];
char field[MAX_FIELD_LENGTH];
int target;
// 打开CSV文件
file = fopen("data.csv", "r");
if (file == NULL) {
printf("无法打开CSV文件!\n");
return 1;
}
// 输入要查找的数
printf("请输入要查找的数:");
scanf("%d", &target);
// 创建用于存储匹配结果的CSV文件
FILE *output_file = fopen("output.csv", "w");
if (output_file == NULL) {
printf("无法创建输出文件!\n");
fclose(file);
return 1;
}
// 写入CSV文件的表头
fprintf(output_file, "行号,字段号\n");
int line_count = 0;
// 逐行读取CSV文件
while (fgets(line, sizeof(line), file)) {
line_count++;
// 逐个字段解析每一行
char *token = strtok(line, ",");
int field_count = 0;
while (token != NULL) {
field_count++;
// 检查字段是否与目标数匹配
int value = atoi(token);
if (value == target) {
fprintf(output_file, "%d,%d\n", line_count, field_count);
}
token = strtok(NULL, ",");
}
}
// 关闭文件
fclose(file);
fclose(output_file);
printf("匹配结果已保存到 output.csv 文件中!\n");
return 0;
}
```
以上代码会在当前目录下创建一个名为 `output.csv` 的文件,将所有匹配项的行号和字段号写入该文件中。你可以根据实际需要修改文件名和路径。请确保CSV文件符合预期的格式,并且每个字段都以逗号分隔。