使用C语言中的fopen()函数打开CSV文件。例如,如果CSV文件名为"example.csv",则可以使用以下代码打开文件:

FILE *fp = fopen("example.csv", "r");
  • 读取CSV文件中的数据
  • 使用fgets()函数从CSV文件中读取数据行。由于CSV文件中每行都以逗号分隔不同的值,可以使用strtok()函数将每行数据拆分为单独的值。例如,以下代码可以读取CSV文件中的一行数据并将其拆分为逗号分隔的值:

    char buffer[1024];
    fgets(buffer, 1024, fp);
    char *value = strtok(buffer, ",");
    while (value != NULL) {
        // 存储每个值到数组中
        value = strtok(NULL, ",");
    
  • 将CSV数据存储到数组中
  • 可以使用数组来存储CSV文件中的数据。首先需要确定数组的大小,可以通过统计CSV文件中的行数和每行的值数来计算出数组的大小。然后,可以使用动态分配内存的方法为数组分配空间。例如,以下代码可以创建一个二维数组并动态分配内存以存储CSV文件中的数据:

    // 统计CSV文件中的行数和每行的值数
    int rows = 0;
    int columns = 0;
    char buffer[1024];
    while (fgets(buffer, 1024, fp)) {
        rows++;
        char *value = strtok(buffer, ",");
        while (value != NULL) {
            columns++;
            value = strtok(NULL, ",");
    // 动态分配内存以存储CSV文件中的数据
    double **data = (double **)malloc(rows * sizeof(double *));
    for (int i = 0; i < rows; i++) {
        data[i] = (double *)malloc(columns * sizeof(double));
    

    接下来,可以使用类似于步骤2的代码将CSV数据存储到数组中:

    rewind(fp);
    int row_index = 0;
    while (fgets(buffer, 1024, fp)) {
        int column_index = 0;
        char *value = strtok(buffer, ",");
        while (value != NULL) {
            data[row_index][column_index] = atof(value);
            column_index++;
            value = strtok(NULL, ",");
        row_index++;
    

    最后,要记得在程序结束时关闭文件并释放数组的内存:

    fclose(fp);
    for (int i = 0; i < rows; i++) {
        free(data[i]);
    free(data);
            初学者_Study
            Android