将文件传递给函数并使用C中的fgets()和strtok()解析数据

时间:2014-08-28 00:11:42

标签: c file fgets strtok

我正在进行C编程分配,其中程序必须从两个文件中读取数据,这些文件通过命令行传递给程序,并将数据解析为单独的字段以在链表中使用,可能使用strtok ()。已经提供了函数原型,即

int loadData(char* menuFile, char* submenuFile);

到目前为止,我已打开文件并使用

将文件数据传递给函数
menufile = fopen(argv[1], "r");
submenufile = fopen(argv[2], "r");
loadData(argv[1], argv[2]);

我尝试使用fgets()和strtok()来使用" |"来解析数据。分隔符。

我的问题是,我现在假设在loadData()函数中我有一个指向char数组的指针,并且我已经尝试使用以下代码将其传递给fgets()

while(fgets(line, sizeof(line), menuFile)){
    value = strtok(line, "|");
    result[i][0] = strdup(value);
    printf("Category ID: %s\n", value); etc

但我得到以下内容:

 warning: passing argument 3 of ‘fgets’ from incompatible pointer type [enabled by default]

和分段错误。

如何使用fgets()以有意义的方式处理这些数据?

0 个答案:

没有答案