我正在尝试将 .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)是否可以将单词作为字符串传递给二维数组?
我会很感激一些帮助。谢谢。