我正在尝试从用户读取两个字符串并输出它们。 如果我输入“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.
所以我猜这是创造这个问题的空间,你能告诉我如何解决这个问题吗?而且我也想知道这个空间发生了什么。 谢谢!
答案 0 :(得分:0)
std :: getline(cin,name);获取输入直到行尾;
如果你仍然有同样的问题,你可以让用户输入第一个名字,然后输入姓氏,但希望getline可以工作:)