为什么 >> 运算符在 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
操作是有道理的,因为它改变了流的可观察状态。例如,文件上的读取位置以及 fail
和 eof
.
等状态指示器已更改
我有这段代码:
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
操作是有道理的,因为它改变了流的可观察状态。例如,文件上的读取位置以及 fail
和 eof
.