我正在尝试搜索字典,并检查向量中的某些单词是否在字典中。
我目前正在使用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语句会输出词典中的所有单词。