永远不会有机会输入字符串输入。 C ++

时间:2014-11-17 04:23:29

标签: c++ string input output

我正在尝试从用户读取两个字符串并输出它们。 如果我输入“Micheal Jordan”作为第一个输入,该程序将不会给我机会输入我的第二个字符串。

#include "iostream"
#include "cstring"

int main()
{
  using namespace std;
  string name;
  string dessert;

  cout << "Enter your name: \n";
  cin >> name;

  cout << "Enter your favorite dessert: \n";
  cin >> dessert;

  cout << "I have some delicious " << dessert << " for you, " << name << "." << endl;

  return 0;
}

输出:

./a.out 
Enter your name: 
Micheal Jordan
Enter your favorite dessert: 
I have some delicious Jordan for you, Micheal.

如果输入没有空格的名称,代码可以正常工作。

./a.out 
Enter your name: 
MichealJordan
Enter your favorite dessert: 
Cake
I have some delicious Cake for you, MichealJordan.

所以我猜这是创造这个问题的空间,你能告诉我如何解决这个问题吗?而且我也想知道这个空间发生了什么。 谢谢!

1 个答案:

答案 0 :(得分:0)

std :: getline(cin,name);获取输入直到行尾;

如果你仍然有同样的问题,你可以让用户输入第一个名字,然后输入姓氏,但希望getline可以工作:)