c - 如何将文本文件的内容保存到二维数组中?

标签 c

我创建了一个名为“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/

相关文章:

c - API 在什么时候返回 ERROR_MUI_FILE_NOT_LOADED?

c - 串行通信 C/C++ Linux 线程安全吗?

c - 奇怪的字符保存在我的文本文件中

c - Malloc 中的 Strlen

Kali Linux VM 中的 C 段错误

c - 在C中,如何以随机顺序打乱数组索引的指针

c - 在 C 中将十六进制数打印为十进制

将字符串与 if 条件进行比较

c - C 中的 system() 函数

c - 初始化为 char str[] 的字符串 str 的大小 ="S\032ABCD"