overriding istream and ofstream

overriding istream and ofstream

本文关键字:ofstream and istream overriding      更新时间:2023-10-16

我在覆盖文件流的<<>>操作符时遇到了问题。

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 (in- fileststream中的的缩写)和用于输出的ofstream (out- fileststream的缩写)。