簡體   English   中英

為什么 >> 運算符在 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操作 std::istream::operator>>不是const操作,因此它不能在這里使用。

std::istream::operator>>不是const操作是有道理的,因為它改變了流的可觀察狀態。 例如,文件上的讀取位置以及狀態指示器(如faileof已更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM