我正在使用 ifstream 和 ostream 来序列化我的数据,但我惊讶地发现 `<<' 运算符不能分隔两个相邻的字符串,并且分隔它们会非常复杂。
class Name
{
string first_name;
string last name;
friend std::ostream& operator<< (std::ostream& os, const Name& _name)
{
os << _name.first_name << _name.last_name;
return os;
}
friend std::istream& operator>> (std::istream& is, Name& _name)
{
is >> _name.first_name >> _name.last_name;
return is;
}
这不起作用,因为 << 和 >> 不写入空终止符,并且 ifstream 读取变量 (first_name) 中的整个字符串,这有点令人失望。如何分别存储这两个字符串,以便我也可以分别读取它们?我不明白<<
在 ostream 中连接所有字符串的动机是什么,所以我们不能单独读回它们!?