我创建了一个名为“ thetext.txt”的文本文件,并带有引号。
引用是:
“如果地球上没有数学家,那么对于真正的物理学会更好。
-丹尼尔·伯努利”
现在,我想将其保存在二维数组[200] [[20]中,以计算单词数。
它只打印字符串(会)。

我做了什么:

void countwords(char word2[B][N]){
    FILE *read;
    char c;
    int i, j;
    int words=0, x=0;
    if((read=fopen("thetext.txt", "rt"))==NULL){
        printf("Cannot open File.");
        return ;
    }
    if(fgets(word2, sizeof(word2), read) != NULL){
        printf("%s",word2);
    }
    fclose(read);
    return ;
}

最佳答案

在C语言中,当您将数组传递给函数时,它将其作为指针传递。
我假设您做了#define B 200#define N 20来进行编译。

您的fgets调用等效于:

if(fgets(word2,sizeof(char**), read)!= NULL)


如果要读取更多数据,请增加该大小。

另外,您的数组似乎对我来说有点奇怪,因为20个字符仍然不足以容纳该文本,也许您是说word2[N][B]? 20行,每行可容纳199个字符?

if(fgets(word2[0], sizeof(char)*B, read)!= NULL)

关于c - 如何将文本文件的内容保存到二维数组中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49781924/

10-10 19:32