我需要从文件中读取,然后将行分成 3 个字符串。格式是:A first_Secod_Third(三个下划线)这是作业,他们建议我们使用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;
但是当我 cout << class1 得到的只是输入文件的所有三个字段,没有_,每个字段都在一个新行上。当我尝试使用 get() 函数时,即使我声明了 fstream,编译器也无法识别它。这样做的一般算法是什么?