簡體   English   中英

ifstream不讀入緩沖區

[英]ifstream doesn't read to buffer

在以下代碼中,read方法似乎沒有填充給定的緩沖區:

ifstream pkcs7_file(file_name, std::ios::binary);
if ( pkcs7_file.fail() )
{
    std::cout << "File failed before reading!\n";
}
pkcs7_file.seekg(0, pkcs7_file.end);
size_t len = pkcs7_file.tellg();

char * buffer = new char[len];

pkcs7_file.read(buffer, len);

pkcs7_file.close();

使用VS 2012進行調試和打印時,Len變量符合預期(而不是零),但在讀取函數后緩沖區不會更改-它與讀取之前的值保持不變。

我究竟做錯了什么?

您試圖找到文件結尾, 然后嘗試閱讀。 當然會失敗-文件位於EOF,沒有要讀取的數據。

暫無
暫無

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

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