【发布时间】:2014-12-11 06:31:39
【问题描述】:
我可以输入输入以调用 getline(cin, input, '\n'),但它永远不会结束。我可以继续提供意见。我试过不使用 for 循环,它接受 getline() 的输入,然后打印它。所以我的猜测是for循环有问题。我没有编译器错误。
#include <iostream>
#include <string>
using namespace std;
int main()
{
unsigned int i = 0;
int cat_appearances = 0;
string l;
cout << "Please enter a line of text: " << endl;
getline(cin, l, '\n');
for (i = l.find("cat", 0); i != string::npos; i = l.find("cat", i)) {
cat_appearances++;
//move past the last discovered instance to
//avoid finding same string again
i++;
}
cout << "The word cat appears " << cat_appearances
<< " in the string " << '"' << l << '"';
}
【问题讨论】:
-
简单调试:(1)在循环前打印
l中的字符串; (2) 打印i的值,或者i的值会得到:cout << l.find("cat", 0) << "\n";