c语言读取csv文件数据
时间: 2023-11-20 12:57:51 浏览: 50
为了读取CSV文件中的数据,可以使用C语言中的文件操作函数和字符串处理函数。具体步骤如下:
1. 打开CSV文件,使用fopen()函数打开文件,并使用文件指针指向该文件。
2. 读取CSV文件中的每一行数据,使用fgets()函数逐行读取CSV文件中的数据,并将其存储在一个字符数组中。
3. 将每一行数据按照逗号分隔符进行分割,使用strtok()函数将每一行数据按照逗号分隔符进行分割,并将分割后的每个字段存储在一个字符数组中。
4. 将分割后的数据进行处理,使用atof()函数将字符数组中的字符串转换为浮点数,并将其存储在一个数组中。
5. 关闭CSV文件,使用fclose()函数关闭文件。
下面是一个示例代码,可以读取CSV文件中的数据并将其存储在一个二维数组中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 1024
#define MAX_FIELD_LENGTH 128
#define MAX_FIELDS 10
int main() {
FILE *fp;
char line[MAX_LINE_LENGTH];
char *field;
char fields[MAX_FIELDS][MAX_FIELD_LENGTH];
double data[MAX_FIELDS][MAX_FIELDS];
int i, j, num_fields = 0;
fp = fopen("data.csv", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) {
num_fields = 0;
field = strtok(line, ",");
while (field != NULL && num_fields < MAX_FIELDS) {
strcpy(fields[num_fields], field);
num_fields++;
field = strtok(NULL, ",");
}
for (i = 0; i < num_fields; i++) {
data[i][j] = atof(fields[i]);
}
j++;
}
fclose(fp);
// 打印读取的数据
for (i = 0; i < num_fields; i++) {
for (j = 0; j < num_fields; j++) {
printf("%f ", data[i][j]);
}
printf("\n");
}
return 0;
}
```