C从文件中读取文本并将其放入数组中

时间:2016-05-10 15:53:34

标签: c arrays file

我正在使用C并尝试从文件中读取文本并将其存储在数组中供以后使用,但它似乎不起作用。它也没有给出错误。有什么问题?

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE *fp;
    fp = fopen("data.txt", "r");
    char rida[120], str[100];
    int i = 0, j = 0;

    while (fscanf(fp, "%s", str[i]) != EOF)
    {
        rida[i] = str[i];
    }
    fclose(fp);
}

data.txt文件包含以下内容:

Text
Text2
Text3
Text4
Text5

2 个答案:

答案 0 :(得分:1)

sum(1, 2); // multi argument form sum(1)(2); // curry form 更改为类似rida[120]的内容,因为您似乎希望自己存储每个单词,因此您需要使用二维数组。还要使用rida[20][120]来复制字符串,而不是赋值运算符strcpy()

=

答案 1 :(得分:0)

您可以使用命令行参数获得答案:

int main(int argc,char *argv[])
    {
        FILE *fp;
        if(argc<2) return printf("Error.Not enough arguments.\n"),1;
        if((fp = fopen(argv[1],"r"))==NULL) return printf("Error. Couldn't open the file.\n"),1;
        char str[10][100]={""}; //Making sure to have only the scaned strings in the array
        int i=0;
        while ( fscanf(fp,"%s",str[i++]) != EOF);

        int j=0;
        while(j<i){
        printf("%s\n",str[j++]);
        }

        fclose(fp);
        return 0;
    }