“编写一个名为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
吗?
最佳答案
您可以使用:
std::getline(is, item.name_var);
你也可以指定一个分隔符char作为第三个参数
关于c++ - 制作一个允许输入中有空格的读取函数(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30844839/