要在C語言中讀取CSV文件的數(shù)據(jù),可以按照以下步驟進行:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char field1[100];
char field2[100];
// 可以根據(jù)需要添加更多的字段
} 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函數(shù)按照逗號分隔每個字段
char* token = strtok(line, ",");
strcpy(data[i].field1, token);
token = strtok(NULL, ",");
strcpy(data[i].field2, token);
// 可以根據(jù)需要繼續(xù)讀取更多的字段
i++;
}
*num_rows = i;
fclose(file);
}
int main() {
CSVData data[100];
int num_rows;
readCSV("data.csv", data, &num_rows);
// 打印讀取到的數(shù)據(jù)
for (int i = 0; i < num_rows; i++) {
printf("第 %d 行數(shù)據(jù):\n", i+1);
printf("字段1:%s\n", data[i].field1);
printf("字段2:%s\n", data[i].field2);
// 可以根據(jù)需要打印更多的字段
printf("\n");
}
return 0;
}
以上代碼假設CSV文件中每行只有兩個字段,可以根據(jù)實際情況進行調(diào)整。另外,需要確保CSV文件存在且格式正確。