微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用C++将带空格的字符串输入到istream对象中

如何解决用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 举报,一经查实,本站将立刻删除。