-1

所以 linux.words 文件是一个\n单独的单词列表。我尝试使用 fopen 访问它,如下所示:

{
    FILE* words;

    words = fopen("~/usr/share/dict/words", "r");
    char* dictionary[10];
    if (words != NULL)
    {
        for (int i = 0; i < 10; i++)
        {
            fscanf(words, "%s", dictionary[i]); 
            printf("%s", dictionary[i])
        }
    }
}

我遇到了很多麻烦。我怀疑这可能与我需要在那里放一些东西有关\n,而且也许我没有正确打开文件。

4

3 回答 3

0

看起来你给了 fopen() 错误的路径。尝试删除波浪号 (~)。朱塞佩的回答也是正确的,但我怀疑你的程序甚至没有走那么远。

最好检查 fopen() 的返回值是否有错误(单词!= NULL)。但是,您还应该做一些事情,例如输出错误的描述(例如,使用 perror())。这将使调试更容易。

于 2014-06-01T22:11:26.343 回答
0

你没有为你的字典分配任何空间

于 2013-11-10T22:14:34.030 回答
0

您没有为从文件中读取的单词分配空间。

char* dictionary[10];

...
// for each word
dictionary[i]= malloc(WORD_SIZE); 
...
于 2013-11-10T22:15:37.900 回答