データをシリアル化するために ifstream と ostream を使用していますが、驚いたことに、「<<」演算子は隣接する 2 つの文字列を分離できず、それらを分離するのは非常に複雑です。
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;
}
<< と >> は null ターミネータ文字を書き込まず、ifstream は変数 (first_name) の文字列全体を読み取るため、これはうまくいきません。2 つの文字列を別々に保存して、別々に読み取ることができるようにするにはどうすればよいですか? ostream ですべての文字列を連結する動機が何なのか理解<<
できないので、それらを個別に読み取ることができません!?