0

我正在尝试将 .csv 文件中的元素放入二维数组。这是我到目前为止写的代码。

#include <string.h>
#include <stdio.h>
#define MAX_SIZE 200
char* data[33][13]={0};
int i = 0;
int j = 0;
void passDataToArray()
{
    const char* fileName = "input.csv"; 
    char wordsArray[MAX_SIZE]; 
    char* wordToken; 


    FILE* inputFile = fopen(fileName, "r");
    if (!inputFile)
    {
        printf("error: could not parse file %s\n", fileName);
    }

    while (fgets(wordsArray, sizeof(wordsArray), inputFile))
    {
        char* duplicatedArray = strdup(wordsArray);

        while(wordToken = strsep(&duplicatedArray, ",")) {

            //printf("%s ", wordToken);
            j++;
            if(j==13){
                //printf("\n%d ", i);
                i++;
                j=0;
            }
            data[i][j]=wordToken;
        }
    }

    fclose(inputFile);
}

void printData(){
    for(i = 0; i < 33; i++) {

                for(j = 0; j < 13; j++) {
                printf("%s ", data[i][j]);
                }
                printf("\n");
        }
}

int main()
{
    passDataToArray();
    printData();
}

我如何可以毫无问题地打印数据但不能将它们存储在数组中?

顺便说一句,我得到了上面代码的段错误。我认为这可能是因为这条线

data[i][j]=wordToken;

1)我对变量的定义做错了吗?

2)将指针存储在数组中的意义何在?显然我也做错了,但这如何帮助我将字符串保存在数据中?

3)是否可以将单词作为字符串传递给二维数组?

我会很感激一些帮助。谢谢。

4

0 回答 0