C++ 在while循环中调用getline(cin,str)时遇到问题

C++ 在while循环中调用getline(cin,str)时遇到问题,c++,C++,我正在使用 getline(cin , inputStr); // where string = inputStr; 从字符串类型的用户获取输入。代码运行得很好。但现在不知何故,在一个while循环中,它没有被调用。也就是说,编译器似乎跳过了这一部分 但是光是str就可以了。有什么建议吗 注释中的代码: int num, choice; string inputStr=""; while(1) { cout<<"1) Search \n"; cout<&

我正在使用

getline(cin , inputStr); // where string = inputStr;
从字符串类型的用户获取输入。代码运行得很好。但现在不知何故,在一个while循环中,它没有被调用。也就是说,编译器似乎跳过了这一部分

但是光是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
int-num,选项;
字符串inputStr=“”;
而(1)
{

cout问题在于
cin>>choice;
将换行保留在输入流中,因此
getline(cin,str);
会立即返回该换行


尝试在
cin>>选项之后添加
cin.ignore();
以使用换行符。

问题是
cin>>选项;
将换行保留在输入流中,因此
getline(cin,str);
立即返回该换行符


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

代码
是机密的
。您需要向我们展示您正在使用的代码。很抱歉,我不能。但是是否有其他命令可以将字符串作为用户的输入???您如何知道编译器跳过了该部分?@AzkaAhmad如果您不能..那么很抱歉we帮不了你。这可能与while循环的终止条件有关。你能发布相关部分,可能是整个程序代码吗?代码
是否机密
。你需要向我们展示你正在使用的代码。很抱歉,我不能。但是有没有其他命令可以将字符串作为用户的输入???你怎么知道编译器没有跳过那部分吗?@AzkaAhmad如果你不能..那么很抱歉我们帮不了你这可能与while循环的终止条件有关。你能发布相关的部分,可能是整个程序代码吗?它工作了..谢谢looooottttttttttttt..!!!!它工作了..谢谢looootttttttt。。。。。。。!!!!