c语言读取csv文件的某一列存入数组
时间: 2023-07-29 12:11:17 浏览: 206
可以按照以下步骤来读取 CSV 文件中的某一列并存入数组中:
1. 打开 CSV 文件并读取数据行。
2. 按行分割数据,并根据逗号分隔符将每行数据拆分为单个单元格。
3. 从每行数据中提取所需的列数据。
4. 将提取的数据存入数组中。
下面是一个示例代码,可以读取 CSV 文件中的第二列数据并存入数组中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 1024
#define MAX_NUM_ROWS 1000
int main() {
FILE *fp;
char line[MAX_LINE_LENGTH];
char *token;
char *filename = "data.csv";
int col_num = 2;
int row_idx = 0;
float data[MAX_NUM_ROWS];
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return 1;
}
while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) {
token = strtok(line, ",");
for (int i = 1; i < col_num; i++) {
token = strtok(NULL, ",");
}
if (token != NULL) {
data[row_idx++] = atof(token);
}
}
fclose(fp);
printf("Data in column %d:\n", col_num);
for (int i = 0; i < row_idx; i++) {
printf("%.2f\n", data[i]);
}
return 0;
}
```
在此示例代码中,我们使用了 `fgets()` 函数来逐行读取 CSV 文件中的数据,并使用 `strtok()` 函数将每行数据分割为单个单元格。
我们还使用了 `col_num` 变量来指定要提取的列,而 `row_idx` 变量则用于跟踪已读取的行数。最后,我们将提取的数据存储在名为 `data` 的数组中,并打印出数组中的值。
请注意,此示例代码仅演示了如何读取 CSV 文件的某一列并将其存储在数组中。在实际应用中,您可能需要添加更多的错误检查和边界条件检查。
阅读全文