为什么 >> 运算符在 C++ 中的 const 文件上出错?

Why does >> operator gives error on const file in C++?

我有这段代码:

void NeighborsList::insertVertexes(const ifstream & inputFile)
{
    int tempS, tempT;
    for (int i = 0; i < numOfVertexes; i++)
    {
        inputFile >> tempS;
        inputFile >> tempT;
        addEdge(tempS, tempT);
    }
}

我正在尝试获取文件的输入。 一旦我删除了函数参数中的 const - (ifstream & inputFile) 它就起作用了。

给定一个 const 对象或引用,只有 const operations may be performed. std::istream::operator>> 而不是 一个 const 操作,因此它不能在这里使用。

std::istream::operator>> 不是 const 操作是有道理的,因为它改变了流的可观察状态。例如,文件上的读取位置以及 faileof.

等状态指示器已更改