я использую
getline(cin , inputStr); // where string = inputStr;
принять ввод от пользователя строкового типа. Код работал отлично. Но теперь, так или иначе, в то время как это не вызывается. То есть компилятор, похоже, пропустил эту часть.
Но cin >> str
один работает отлично. Какие-либо предложения?
Код из комментария:
int num, choice;
string inputStr="";
while(1)
{
cout<<"1) Search \n";
cout<<" EXIT\n";
cout<<"Choose your choice : ";
cin >> choice;
switch(choice)
{
case 1:
cout<<"word for search\n";
getline(cin, str);
cout<< str <<endl;
return 0;
//just checking whether this commands work or not.
}
else
{
return 0;
}
.......// there is 300 lines of code still there
Проблема в том, что cin >> choice;
оставляет перевод строки во входном потоке, поэтому getline(cin, str);
немедленно возвращается из-за этой новой строки.
Попробуйте добавить cin.ignore();
после cin >> choice;
потреблять символ новой строки.
Других решений пока нет …