2016-10-17 30 views
0

在假設情況下,我不知道該文件有多少項。我會用什麼樣的循環來讀取文件中的項目,直到文件結束爲止?我目前正在使用的代碼如下。我用什麼樣的循環來讀取文件?

#include <iostream> 
#include <fstream> 
using namespace std; 

int main() 
{  
    ifstream inputFile; 
    int num; 

    inputFile.open("TenNos.txt"); 
    cout << "Reading data from the file. \n"; 
    inputFile >> num; 
    cout << num << endl; 
    return 0;  
} 
+0

使用一段時間,因爲你不知道會發生多少次迭代。 –

回答

1
while (inputFile >> num) 
{ 
    cout << num << endl; 
} 

,直到它找到的東西,是不是int,文件末端從文件將讀取和打印int S,該文件未打開,或文件不可讀的任何數量的其他原因。

檢查various state flags documented here將幫助您確定爲什麼閱讀停止。

More in std::istream in general。並在operator bool explaining how and while (inputFile >> num) works上的頁面。

如果檢測到錯誤後,要清理和繼續,確保you read clear()ignore()

1

你應該添加fstream的是能夠讀取文件,然後使用while循環讀取的內容文件直到結束。

#include <fstream> // for files 
#include <iostream> // printing on screen by default 

int main() 
{ 
    ifstream inputFile; 
    int num; 

    inputFile.open("TenNos.txt"); 
    cout << "Reading data from the file. \n"; 

    while(inputFile >> num) 
     cout << num << endl; 

    return 0; 
} 
+0

@ user4581301如果打開失敗怎麼辦? – Raindrop7

+0

然後流不可讀,'while(inputFile >> num)'不輸入。 – user4581301

+0

哦,是的,我沒有注意到!感謝名單 – Raindrop7