我有以下结构:
struct Person{
std::string name;
std::string address;
std::string& personName(){ return name; }
std::string& personAddress(){return address;}
};
练习是编写一个读取名称和地址的读取函数。比如我第一次写的函数是这样的:
std::istream &read(std::istream &is, Person &person){
is >> person.name >> person.address;
return is;
}
但是,此功能仅适用于address
. 例如,如果输入是:
利高斯威路
输出将是person.name
= "Lee" 和person.address
= "Goswell"。我想要的是基本上读取整个地址的功能。我确实尝试按如下方式解决此问题,但我不确定它是否正确,因为地址已隐式更改:
std::istream &read(std::istream &is, Person &person){
is >> person.name;
std::getline(std::cin, person.address);
return is;
}
在说我应该编写单独的函数之前要考虑的另一件事是,任务是编写一个函数来读取名称和地址。