0

我在用

getline(cin , inputStr); // where string = inputStr;

从字符串类型的用户那里获取输入。代码运行良好。但现在不知何故,在一个while循环中,它没有被调用。也就是说,编译器似乎跳过了这部分。

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
4

1 回答 1

3

问题是cin >> choice;将换行符留在输入流中,因此getline(cin, str);由于该换行符而立即返回。

尝试在之后添加一个cin.ignore();cin >> choice;使用换行符。

于 2012-11-21T07:28:45.670 回答