-1

当我从我的部分代码中通过 Word (2) 执行搜索时,我的 C++ 代码崩溃了。

它的作用是扫描 .txt 文件,然后打印出一些信息,然后它给了我选项,我的第二个选项是让我的代码崩溃。

我的代码中导致它崩溃的部分是,它的目标是读取用户输入,然后扫描文件以查找匹配的单词,然后打印出它的定义。

案例2:

{
                string searchWord;
                cout << "Enter a word to search for: ";
                std::getline(std::cin, searchWord);
                Word *myWord = Dic.findWord(searchWord);
                if (myWord != NULL)
                {
                    cout << myWord->definition;
                }
                break;
            }
4

1 回答 1

4

您的逻辑是错误的,您应该在尝试比较之前findWords检查而不是之后。像这样MAX_WORDS

Word* Dictionary::findWord(string searchWord)
{
    int wordIndex = 0;
    while (wordIndex < MAX_WORDS) {
        if (myWords[wordIndex]->word.compare(searchWord) == 0) {
            return myWords[wordIndex];
        }
        wordIndex++;
    }
    cout << "word not in dictionary";
    return NULL;
}
于 2013-09-20T13:03:12.150 回答