【发布时间】:2012-11-15 17:51:09
【问题描述】:
我目前正在尝试计算文件中的字数。在此之后,我打算让它计算文件中两个单词之间的单词。例如。我的文件可能包含。 “你好,我的名字是詹姆斯”。我想数单词,所以 5。然后我想数“Hello”和“James”之间的单词数,所以答案是 3。我无法完成这两项任务。 主要是因为不确定如何构建我的代码。 在这里的任何帮助将不胜感激。我目前使用的代码是使用空格来计算单词。
这是我的代码:
readwords.cpp
string ReadWords::getNextWord()
{
bool pWord = false;
char c;
while((c = wordfile.get()) !=EOF)
{
if (!(isspace(c)))
{
nextword.append(1, c);
}
return nextword;
}
}
bool ReadWords::isNextWord()
{
if(!wordfile.eof())
{
return true;
}
else
{
return false;
}
}
main.cpp
main()
{
int count = 0;
ReadWords rw("hamlet.txt");
while(rw.isNextWord()){
rw.getNextWord();
count++;
}
cout << count;
rw.close();
}
目前它所做的是计算字符数。我敢肯定这只是一个简单的修复和我错过的一些愚蠢的事情。但我已经尝试了足够长的时间来寻求帮助。
非常感谢任何帮助。 :)
【问题讨论】:
-
c++?将标记化的单词附加到向量,找到这两个单词,减去索引。随意处理重复的单词
-
您也意识到 isNextWord() 几乎毫无意义,对吧?只需添加一个!在你原来的状态或采取替代路径
-
我个人建议将单词读入 char 数组开始。该文件在内存中后将更易于使用,并且它允许您处理一般情况 - 即 GetWordCountBetween(string word1, string word2) 而无需执行更多文件 IO。