为什么>>运算符在 C++ 中对 const 文件给出错误?



我有一段代码:

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

我正在尝试获取文件的输入。一旦我删除了函数参数-(ifstream&inputFile(中的常量,它就可以工作了。

给定const对象或引用,只能执行const操作。std::istream::operator>>而不是const运算,因此此处可能不使用它。

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

最新更新