我正在使用
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
答案 0 :(得分:3)
问题是cin >> choice;
在输入流中留下换行符,因此getline(cin, str);
会因换行符而立即返回。
尝试在cin.ignore();
之后添加cin >> choice;
以使用换行符。