【发布时间】:2017-10-17 15:46:40
【问题描述】:
我遇到的问题是,在下面的循环中,我试图从输入文件 (inSentences) 中逐句读取句子,如果它包含某个单词,则将其输出到另一个文件 (outMatch) 中。我不允许使用除 .at() 和 .size() 之外的任何字符串函数。
问题出在我试图先将句子输出到一个中间文件中,然后使用提取操作符一个一个地获取单词,看是否有单词。如果是,它将句子输出到 outMatch 文件中。调试的时候发现sentence变量一个一个接收所有的句子,但是sentMore变量总是提取文件的第一个句子,所以无法测试剩下的句子。我似乎无法修复这个错误。帮助将不胜感激。
附:我真的不希望答案充实,只是轻推或朝正确方向提供线索。
outMatch.open("match");
outTemp.open("temp");
while(getline(inSentences, sentence, '.')){
outTemp << sentence;
outTemp.close();
inTemp.open("temp");
while(inTemp >> sentMore){
if(sentMore == word){
cout << sentence << "." << endl;
inTemp.close();
sentCount++;
}
}
}
【问题讨论】:
-
不要使用“中间文件”,而是使用string streams
标签: c++