我无法覆盖文件流的<<>>运算符。

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/

10-11 06:02