我無法在Visual Studio 2010的C++中將大文件讀入我自己的緩衝區中。下面是我的代碼片段,其中長度是我正在讀取的文件的大小,bytesRead在運行之前設置爲0,並且文件是std :: ifstream。C++讀取()問題
buffer = new char[length];
while(bytesRead < length){
file.read(buffer + bytesRead, length - bytesRead);
bytesRead += file.gcount();
}
file.close();
我注意到,gcount的()在第二次讀取返回0及以後,意思就是閱讀()沒有給我任何新角色,所以這是一個無限循環。我想繼續閱讀文件的其餘部分。我知道即使文件中有更多數據,eofbit也會在第一次讀取後設置。
我不知道我能做些什麼來閱讀更多。請幫忙。
爲什麼你不檢查錯誤?爲什麼'gcount'返回0? – littleadv
我知道eofbit已設置,但實際上文件中有更多數據。我會將這些信息添加到問題中。 – Aura
用第二個參數'(std :: ios_base :: in | std :: ios_base :: binary)打開文件' –