ファイルから読み取ってから、行を3つの文字列に分割する必要があります。形式は次のとおりです。Afirst_TheSecod _Third(3つのアンダースコア)これは宿題であり、getlineを使用して無視することを提案しています。ので、私は持っています:
main()
ifstream inf("file.txt")
while(inf)
{inf >> class1;
cout << class1;
}
class THECLASS
{string a, b, c;
public:
friend void operator>>(ifstream &inf, THECLASS &class1)
{getline(inf, class1.a, '_');
inf.ignore();
inf.ignore();
[if I put getline class1.b, the whole line will go into it, overwriting .a]
}
and in operator<<, I have
os << class1.a << class1.b;
return os;
しかし、<< class1をcoutしたときに得られるのは、_を含まない入力ファイルの3つのフィールドすべてであり、それぞれが新しい行にあります。get()関数を使おうとすると、fstreamを宣言してもコンパイラが認識しません。それを行うための一般的なアルゴリズムは何ですか?