我正在尝试检查一行是否正好有 10 个单词。我这样做的方式是复制该行,并逐个提取并增加计数器,如果它是10,我操纵该行。但我觉得这非常低效,因为我必须对每一行都这样做,而且大多数行都是 10 个单词。所以我正在寻找一种更有效的方法来做到这一点。
while(getline(ifs, line)){
istringstream iss (line);
int s_counter = 0;
istringstream iss_copy = iss; //create a copy to test if there are 10 strings in a iss
string s;
while (iss_copy >> s){
++s_counter;
}
if (s_counter == 10){
while(iss>>word){
...//manipuate each word
}
}
}