1

編集します。ですから、私のコードは現在ほとんど機能しています。スペルを間違えたはずの単語が欠落していることはわかっています。しかし、理由はわかりません。

http://pastebin.com/DSNU16Bf

このリンクには、私のファイルへの他のすべてのリンクがあります。なので、一度に投稿できるリンクは2つだけです。

あなたがファイルを読んだ場合。すべてがどのように機能するかがわかります。私の検索はスーパーゲットーです、私は知っています。リンクリストが別の文字で始まっている場合、それを無視する方法を見つけることができませんでした。私が行ったすべてのことは無限ループを作りました。ただし、これはコンパイルされて機能します。

俗語のすべてを取り上げているわけではありません。

4

1 に答える 1

2

ここに私の批評があります

bool load(const char* dictionary){
// TODO
FILE *dict = fopen(dictionary, "r");
if(opened){
    fclose(dict);
    return false;
}

どこopenedから来たのかわからない - 事前にファイルを開いたと思うので、ファイルポインタが最初、最後、または途中のどこにあるのかわかりません

opened = true;
if(dict == NULL || !dict){
    return false;
}

なぜ!dictですか?

char line[LENGTH];
bool filling;
for(int i = 0; i < LLLength; i++){
    struct dict_node *newNode;
    newNode = malloc(sizeof(dict_node));
    wordArr[i] = newNode;
    start[i] = wordArr[i];
}

したがって、ここでは 27 個のノードを構築しています。これはより単純なバージョンです (そして同じです)

for(int i = 0; i < LLLength; i++){
        struct dict_node *newNode;
        start[i] = malloc(sizeof(dict_node));
    }

次に、ファイルを読み取ります

while(!feof(dict)){
    for(int i = 0; i < LLLength; i++){
        filling = true;
        while(filling)
            fgets(line,LENGTH,dict);

ここまで来ました (27 文字中 1 文字、最大 45 文字の行)。

それでは、その配列にポップしましょう。start[i]またはwordArrd[i]あなたが好むものは何でも

が文字の配列なのか単なるポインターなのかがわからないwordArr[i]->wordため、ここではお手伝いできません

        strcpy(wordArr[i]->word,line);
        prev = wordArr[i];

今、私たちは混乱しています。あなたは配列から始めましたが、統合失調症が設定されました-リンクされたリストが必要です.

            wordArr[i]->next = malloc(sizeof(dict_node));
            wordArr[i] = wordArr[i]->next;
            fgets(line,LENGTH,dict);
            strcpy(wordArr[i]->word,line);
    }
}

...

fclose(dict);
for(int i = 0; i < LLLength; i++){
    wordArr[i] = start[i];
    while(wordArr[i]->next != NULL){
        wordArr[i] = wordArr[i]->next;
        count++;
    }
}

int test = 0;
wordArr[test] = start[test];
while(wordArr[test]->next != NULL){
    printf("%s",wordArr[test]->word);
    wordArr[test] = wordArr[test]->next;
}
return true;
}
于 2013-02-16T06:58:02.653 に答える