簡體   English   中英

使用istream從文件讀取int數據

[英]Reading int data from file using istream

ifstream dataFile("ints.dat");

istream_iterator<int> dataBegin(dataFile);
istream_iterator<int> dataEnd;

list<int> data(dataBegin, dataEnd);

我在C ++ STL中有上面的代碼。

以上代碼正在運行。

我們正在創建開始和結束迭代器作為數據開始和數據結束。 但dataEnd與數據文件無關。 列表如何知道范圍?

通常看到std::istream_iterator<int> eos; 例如,在ref的例子中,但在你的情況下,你選擇的名字可能更合適。

這是EOF的類比,對於標准輸入,文件結尾表示在讀取的最后一個元素之后1。

eos類似於最后一個迭代器,表示在讀取的最后一個元素之后的1。

它類似於EOF ,但是你看到的不一樣了。 例如,您為流末尾命名的內容確實無關緊要。 在我上面提供的鏈接中,有一個可能的實現,如果你願意,你可以學習。

此外, cpprefernce提到:

默認構造的std :: istream_iterator稱為流末端迭代器。 當有效的std :: istream_iterator到達底層流的末尾時,它變得等於流末尾迭代器 取消引用或遞增它會進一步調用未定義的行為。

cplusplus ,我們有:

這些運算符在頭文件<iterator>中重載。

暫無
暫無

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

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