如何解决用C++将带空格的字符串输入到istream对象中
我重载了 >>
运算符,允许用户从键盘输入,这样他们就可以创建狗的配置文件。我输入狗的年龄和名字没有问题,因为这些变量中没有空格,但是如果我想输入品种 "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 举报,一经查实,本站将立刻删除。