我无法覆盖文件流的<<
和>>
运算符。
struct Reading
{
int hour;
double temp;
Reading()
: hour{ 0 }, temp{ 0 } {};
Reading(int h, double t)
: hour{ h }, temp{ t } {};
};
ifstream& operator<<(ifstream& ifs, const Reading& reading)
{
return ifs << '(' << reading.hour << ',' << reading.temp << ')' << endl;
}
ofstream& operator>>(ofstream& ofs, Reading& reading)
{
ofs >> reading.hour;
ofs >> reading.temp;
return ofs;
}
当我尝试以相同的方式覆盖iostream时,就没有问题,仅使用文件流即可。您能指出我做错了吗?
最佳答案
您似乎对ifstream
(输入流的缩写)和输入输出的ofstream
(输出流的缩写)混淆了。
关于c++ - 覆盖istream和ofstream,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33139333/