我正在尝试从文件中读取块,但是遇到了问题。
char* inputBuffer = new char[blockSize]
while (inputFile.read(inputBuffer, blockSize)) {
int i = inputFile.gcount();
//Do stuff
}
假设我们的块大小为
1024字节
,文件大小为24.3 KiB
。读取第23个块后,还剩下0.3 KiB
要读取。我想读取这0.3 KiB
,事实上我稍后会使用gcount()
来知道read(...)
修改了多少缓冲区(以防它较少)。但是当访问第24个块时,read(...)
返回一个值,使得程序不进入循环,显然是因为未读取的字节数小于缓冲区大小。我该怎么办?