"写一个名为Person
的类,代表一个人的姓名和地址。使用string
来保存这些元素。添加操作以读取和打印Person
对象到您编写的代码。"
注意我还没有到达访问控制部分。
#include <iostream>
#include <string>
using std::string;
struct Person
{
string name_var, address_var;
};
std::ostream &print(std::ostream&, const Person &);
std::istream &read(std::istream&, Person &);
std::istream &read(std::istream &is, Person &item)
{
is >> item.name_var >> item.address_var;
return is;
}
std::ostream &print(std::ostream &os, Person &item)
{
os << item.name_var << " " << item.address_var;
return os;
}
如果我使用std::cin
作为read
的第一个参数,我只能读取单个措辞的名称和地址,这不是非常有用。你能以某种方式使用getline
吗?
答案 0 :(得分:3)
您可以使用:
std::getline(is, item.name_var);
您还可以将分隔符char指定为第三个参数
答案 1 :(得分:0)
看一件事:你用了一个空格来分隔姓名和地址。现在,为了知道名称何时结束,您需要使用其他一些分隔符作为名称。另一个分隔符意味着您需要将名称括在例如双引号(“)然后,在读取名称时,获取输入,直到得到第二个分隔符。