我想通过使用字符串变量向用户询问他们的姓和名,然后使用他们在该字符串中输入的第一个名称并将其打印出来。
string name;
cout << "What is your first and last name? ";
cin >> name;
cout << "Thank you " << name << " for shopping with us!";
如果name变量在第二个cout语句中,我只想使用他们的名字,使用我当前的设置,它会输出他们的名字和姓氏。
答案 0 :(得分:2)
您可以使用getline仅占用第一个空格,将第一个名称放在一个变量中,然后读取行的末尾以获取另一个变量中的姓氏。如果你需要两个连接,那么之后再这样做。例如:
string first, last, name;
getline(cin, first, ' ');
getline(cin, last);
cout << "Thank you " << first << " for shopping with us!";
name = first + ' ' + last; //Assuming you want a space in between
答案 1 :(得分:0)
您需要根据空格分割字符串 - 请查看此质量检查:Split a string in C++?
答案 2 :(得分:0)
有很多方法可以做到,其中一些比其他方法更容易。对于可能的重复帖子检查:Split a string in C++?(很多人可能会对此进行反思)。
您也可以更改它,以便说明:
string fname;
string lname;
cout << "What is your first name? ";
cin >> fname;
cout << "What is your last name? ";
cin >> lname;
cout << "Thank you " << fname << " for shopping with us!";
此解决方案最简单,但如果您按照上述链接获得更多收益。
答案 3 :(得分:0)
如果您想要一个输入并将其拆分为输出,您可以执行以下操作:
std::string line, fname, lname;
std::getline(std::cin, line);
std::istringstream iss(line);
iss >> fname >> lname;
std::cout << "Thank you, " << fname << ", for shopping with us!" << std::endl;