Я могу ввести ввод для вызова getline (cin, input, '\ n'), но он никогда не заканчивается. Я могу просто продолжать вводить данные. Я пробовал без цикла for, и он принимает вход для getline(), а затем печатает его. Поэтому я предполагаю, что это проблема с циклом for. У меня нет ошибок компилятора.Для Loop после getline() не выполняется
#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 ";' –