linux中c语言读取csv
时间: 2024-04-26 22:05:43 浏览: 121
在Linux中使用C语言读取CSV文件,可以使用标准C文件操作函数来实现。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LEN 1024 // 最大行长度
int main(int argc, char *argv[]) {
FILE *fp; // 文件指针
char line[MAX_LINE_LEN]; // 当前行缓冲区
char *field; // 当前字段指针
int line_num = 0; // 当前行号
int field_num = 0; // 当前字段号
// 打开CSV文件
if ((fp = fopen(argv[1], "r")) == NULL) {
fprintf(stderr, "Can't open input file %s\n", argv[1]);
exit(1);
}
// 逐行读取CSV文件
while (fgets(line, MAX_LINE_LEN, fp) != NULL) {
line_num++; // 行号加1
field_num = 0; // 重置字段号
// 逐字段解析当前行
field = strtok(line, ",");
while (field != NULL) {
field_num++; // 字段号加1
printf("Line %d, Field %d: %s\n", line_num, field_num, field);
field = strtok(NULL, ",");
}
}
// 关闭CSV文件
fclose(fp);
return 0;
}
```
以上示例代码可以读取CSV文件中的每一行和每一个字段,并输出其行号、字段号和字段值。需要注意的是,该示例代码假设CSV文件中每个字段之间使用逗号分隔。如果CSV文件中使用其他分隔符,需要相应地修改代码中的分隔符参数。
阅读全文