C++ 输出在读取文本文件时跳过最后一个单词
C++ Output is skipping last word when reading through text file
我有一个我打开的大文本文件的向量,以及一个我也打开的搜索词文件。我有两个函数,是NextWord,它检查是否有另一个单词,getNextWord可以获取下一个单词。
我检查搜索词是否在向量中,然后在最后打印出所有出现的情况。我的代码几乎完美地工作,除了它跳过搜索词文件中的最后一个单词。
例如,如果我的话是:hello,these,are,my,search,words
它将显示除"单词"之外的所有出现:
hello 5
these 2
are 5
my 7
search 9
这是我的 cpp 文件:
string ReadWords::getNextWord()
{
//gets next word of input from file
return theword;
}
bool ReadWords::isNextWord()
{
return !eoffound;
}
这是我的主要
while (search.isNextWord()) {
int occ= 0;
string wordFound= search.getNextWord();
for(int i=0; i < vct.size(); i++){
if(vct[i] == wordFound) {
occ++;
}
}
cout << wordSearch << " " << occ<< endl;
}
为什么它最后一次不执行getNext单词?
当 eof 标志得到最后一个单词时,你正在激活它,然后,函数 ReadWords::isNextWord(( 返回 false 并且循环已结束,最后一个单词永远不会打印。 例如,当返回单词搜索时,您阅读最后一个并启用标志。
我建议将函数是NextWord更改为
bool ReadWords::isNextWord() {return !(wordfile.eof()); }
相关文章:
- lower_bound()返回最后一个元素
- 获取向量C++中第一个值和最后一个值的和
- 获取用C/C++打印的最后一个字符串
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- 为什么这个程序返回最后一个单词而不是最长的单词?
- 将 C++ 类属性与分号前面的最后一个单词对齐;在 emacs 中
- 在字符串中找到最后一个单词
- C++ 输出在读取文本文件时跳过最后一个单词
- 如何将文本(诗歌)拆分为行(字符串/字符[])并查找每个行的最后一个单词
- Fstream不会保存文件中的最后一个单词,也不会从文件中读取
- 句子中的最后一个单词在句子颠倒后不打印
- 字符串中的最后一个单词没有反转
- 你如何知道输入流何时到达一行中的最后一个单词
- 字符串流重复最后一个单词
- 最后一个单词在文本文件C++中重复
- 最后一个单词在jni中被剪掉/截断
- 在一行最后一个单词之后立即退出While循环
- C++:为什么 getline() 不打印输入字符串的最后一个单词?
- Boost正则表达式拆分未命中最后一个单词
- 从使用sstream读取的单词中删除最后一个空格的最佳方法