问题描述
我重载了 >>
运算符,允许用户从键盘输入,这样他们就可以创建狗的配置文件。我输入狗的年龄和名字没有问题,因为这些变量中没有空格,但是如果我想输入品种 "German Shepherd"
,字符串中有空格。我为此寻找了解决方案,我找到的所有答案都是使用 std::getline()
,但是当我使用 getline()
时,它会跳过品种的输入并转到下一个输入。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
class dog
{
int age;
string breed;
string name;
public:
friend istream &operator >>(istream &inputobject,dog &dogObject);
};
istream &operator >>(istream &inputobject,dog &dogObject)
{
cout<<"Please enter dogs age:";
inputobject>>dogObject.age;
cout<<"Enter the breed of the dog:";
getline(inputobject,dogObject.breed);
cout<<"Please enter dogs name:";
inputobject>>dogObject.name;
}
int main()
{
dog dog1;
cout<<"Enter dogs information\n";
cin>>dog1;
}
输入数据:
5
German Shephard
Butch
终端输出:
Enter dogs information
Please enter dogs age:5
Enter the breed of the dog:Please enter dogs name:Butch
如何使用单词之间的空格为成员变量 "German Shepherd"
输入字符串 breed
?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)