要在C语言中读取CSV文件的数据,可以按照以下步骤进行:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char field1[100];
char field2[100];
// 可以根据需要添加更多的字段
} CSVData;
void readCSV(const char* filename, CSVData* data, int* num_rows) {
FILE* file = fopen(filename, "r");
if (file == NULL) {
printf("无法打开文件。\n");
return;
}
char line[256];
int i = 0;
while (fgets(line, sizeof(line), file)) {
// 使用strtok函数按照逗号分隔每个字段
char* token = strtok(line, ",");
strcpy(data[i].field1, token);
token = strtok(NULL, ",");
strcpy(data[i].field2, token);
// 可以根据需要继续读取更多的字段
i++;
}
*num_rows = i;
fclose(file);
}
int main() {
CSVData data[100];
int num_rows;
readCSV("data.csv", data, &num_rows);
// 打印读取到的数据
for (int i = 0; i < num_rows; i++) {
printf("第 %d 行数据:\n", i+1);
printf("字段1:%s\n", data[i].field1);
printf("字段2:%s\n", data[i].field2);
// 可以根据需要打印更多的字段
printf("\n");
}
return 0;
}
以上代码假设CSV文件中每行只有两个字段,可以根据实际情况进行调整。另外,需要确保CSV文件存在且格式正确。