【发布时间】:2010-10-03 20:51:21
【问题描述】:
我正在尝试调整这个答案
How do I tokenize a string in C++?
我当前的字符串问题涉及从文件读取直到 eof。
来自这个源文件:
Fix grammatical or spelling errors
Clarify meaning without changing it
Correct minor mistakes
我想创建一个包含所有标记化单词的向量。示例:vector<string> allTheText[0] should be "Fix"
我不了解istream_iterator<std::string> end; 的目的,但我将其包括在内,因为它在原始发帖人的回答中。
到目前为止,我得到了这个不起作用的代码:
vector<string> allTheText;
stringstream strstr;
istream_iterator<std::string> end;
istream_iterator<std::string> it(strstr);
while (!streamOfText.eof()){
getline (streamOfText, readTextLine);
cout<<readTextLine<<endl;
stringstream strstr(readTextLine);
// how should I initialize the iterators it and end here?
}
编辑:
我把代码改成
vector<string> allTheText;
stringstream strstr;
istream_iterator<std::string> end;
istream_iterator<std::string> it(strstr);
while (getline(streamOfText, readTextLine)) {
cout << readTextLine << endl;
vector<string> vec((istream_iterator<string>(streamOfText)), istream_iterator<string>()); // generates RuntimeError
}
得到一个 RuntimeError,为什么?
【问题讨论】:
-
你应该已经把你写的整个代码替换成了我的一行代码!正如我在回答中暗示的那样,循环是不必要的。