我正在尝试将文本文件中的字符串值添加到矢量中。在这样做时,我还检查字符串中的字符数,然后当达到具有所需字符数的单词时,我将该字符串添加到向量中。
但是当我调试我的程序时,我一直看到超出范围的异常,并打印出比所需字符数更高的字符串。
vector<string> words;
vector<string> chosenWords;
ifstream in("WordDatabase.txt");
while(in) {
string word;
in >> word;
cout << word << endl;
//push in selected words based on num of chars
words.push_back(word);
}
for(vector<string>::iterator itr=words.begin(); itr!=words.end();++itr)
{
if((*itr).length() >= 2 || (*itr).length() <= 7)
{
cout << (*itr) << endl;
chosenWords.push_back(*itr);
}
}
答案 0 :(得分:2)
长度为2+或7-听起来像一个奇怪的条件。最有可能的条件是:
if((*itr).length() >= 2 && (*itr).length() <= 7)
作为旁注,你最好还是阅读这样的文字:
string word;
while(in >> word) {
cout << word << endl;
//push in selected words based on num of chars
words.push_back(word);
}