【发布时间】:2016-09-02 04:27:57
【问题描述】:
如果我必须从文档中读取一个单词(一次一个单词),然后将该单词传递给一个函数,直到到达文件末尾,我该怎么做?
还必须记住的是,单词是任何连续的字母串和撇号(所以can't 或rojas' 是一个单词)。像bad-day 这样的东西应该是两个单独的词,像to-be-husband 这样的东西应该是三个单独的词。我还需要忽略句点.、分号;,以及几乎所有不属于单词的内容。我一直在使用file >> s; 阅读它,然后从字符串中删除内容,但它变得非常复杂。有没有办法只将字母字符+撇号存储到s 并在单词末尾停止(出现空格时)?
while (!file.eof()) {
string s;
file >> s; //this is how I am currently reading it it
passToFunction(s);
}
【问题讨论】:
-
为什么
eof()inide a loop 是错误的:stackoverflow.com/questions/5605125/… -
归类为空格的内容由语言环境定义。您可以对其进行设置,以便仅将字符和撇号视为空格。见stackoverflow.com/a/6154217/14065
标签: c++ string file io fstream