2015-12-26 78 views
-2

我有一個包含65536整數的文本文件。我正在編寫一個C++程序來閱讀這個文件。但它不能正常工作。它適用於幾個整數的文本文件。但對於大文件無法正常工作。如何讀取C++中的大型文本文件?

#include(iostream) 

#include(fstream) 

using namespace std; 

int main() { 

ifstream myReadFile; 

myReadFile.open("FileName.txt"); 

char output[1000]; 

if (myReadFile.is_open()) { 

while (!myReadFile.eof()) { 


    myReadFile >> output; 

    cout<<output; 


} 

} 
myReadFile.close(); 

system("pause"); 

return 0; 

} 

請建議解決方案。

+1

當它顯然是C++你爲什麼這個標籤下的線?請勿添加虛假語言標籤。 –

+0

該代碼是否可以編譯?這是實際的代碼? – Galik

+0

編譯所有警告和調試信息,然後使用調試器。今天65536行是一個*小*文件(一個*大*文件將有幾十千兆字節) –

回答

1

每次讀取

if (myReadFile.is_open()) { 
    char output[1000]; 

    while (!myReadFile.eof()) { 
     // just read one line 
     myReadFile.getline(output, 1000); 
     cout<<output; 
    } 
    myReadFile.close(); 
} 
+1

第二次出現的'1000'應該是sizeof(輸出)' –

+0

'output'應該被重命名爲'line'或'buf'或'buffer'以便清晰。 – chqrlie

+0

也循環'eof()'是錯誤的https://stackoverflow.com/questions/5605125/why-is- iostreameof-內,一個循環條件考慮的,錯誤的 – Galik