我正在编写一个简单程序的过程,该程序将给定的学生姓名分配给所请求的任何间隔的组。目前,我专注于读取学生姓名的功能。 这是代码:
class student
{
public:
string nameFirst;
string nameLast;
};
student typeName()
{
student foo;
cout << "Type in a student's first name: ";
cin >> foo.nameFirst;
cout << "Type in that student's last name: ";
cin >> foo.nameLast;
cout << "\n";
return foo;
}
由于我无法使用getline()
,我不得不创建两个字符串,每个字符串对应学生的全名。如何重写此代码以允许它在不创建两个变量且不使用getline()
的情况下获取全名?或者,如果不可能,我怎样才能使用类中的方法将两个字符串合并为一个?
答案 0 :(得分:3)
你可以使用
cin >> foo.nameFirst >> foo.nameLast;
cin >>
将在空格处解析停靠点,因此您只需在James Bond
之类的空格中输入一行中的全名。
将两个字符串合并为一个:
string fullName = foo.nameFirst + " " + foo.nameLast;