我很好奇如何从没有固定结构(例如注释或小报告)的文本文件中逐字读取输入。
例如,文本的结构可能如下:
“1992 年 6 月 5 日
今天是个好日子;
虫子已经转变,战斗胜利了。”
我在想也许可以使用 getline 获取该行,然后看看是否可以通过空格将其拆分为单词。然后我想使用 strtok 可能会起作用!但我认为这不适用于标点符号。
我想到的另一种方法是逐个字符地获取所有内容并省略不需要的字符。但这似乎不太可能。
所以简单来说:
有没有一种简单的方法可以从文件中读取输入并将其拆分为单词?
因为写起来比找到重复的问题更容易,
#include <iterator>
std::istream_iterator<std::string> word_iter( my_file_stream ), word_iter_end;
size_t wordcnt;
for ( ; word_iter != word_iter_end; ++ word_iter ) {
std::cout << "word " << wordcnt << ": " << * word_iter << '\n';
}
The std::string
论证istream_iterator
告诉它返回一个string
当你这样做时*word_iter
。每次迭代器递增时,它都会从流中获取另一个单词。
如果同一流上同时有多个迭代器,则可以选择要提取的数据类型。但是,在这种情况下,使用可能会更容易>>
直接地。迭代器的优点是它可以插入到通用函数中<algorithm>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)