for循环,而while循环仅运行一次(C ++)

时间:2018-09-07 18:25:30

标签: c++

我正在尝试搜索字典,并检查向量中的某些单词是否在字典中。

我目前正在使用while循环并在其中进行for循环的方式进行此操作:

[tokenName] : tokenHash

输出:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <string>
using namespace std;

void wordCheck () {
    ifstream inDict("linux_dict_words.txt");
    if(!inDict) cerr << "Couldn't open ";
        vector<string> across;
    across = {"tide", "slot", "add"};
    vector<string> tmpWords;
    string tmpLine;
    while(getline(inDict, tmpLine)) {
        for (int i = 0; i < tmpLine.length(); i++) {
            tmpLine[i] = tolower(tmpLine[i]);
        }
        tmpWords = across;
        across.clear();
        for (int i = 0; i < tmpWords.size(); i++) {
            if (tmpLine == tmpWords[i]) {
                across.push_back(tmpWords[i]);
            }
            cout << tmpLine << '\n';
        }
    }
}

int main () {
    wordCheck();
    return 0;
}

预期输出:

a
a
a

等(字典文件中的每个单词打印了3次)

这将输出“ a”(这是字典中的第一个单词)3次。但是,它应该将字典中的每个单词输出3次。我可以确认它正在解析整个词典,因为for循环外的cout语句会输出词典中的所有单词。

0 个答案:

没有答案