用CFile Read()读取.rmvb 等较大文件时候,总是读不到想要的长度char buff[1024] = {0};
int length = 0;
int readsize = 0CFile file("c:\\test.rmv", CFile::modeRead);
length = file.GetLength();while (readsize<length)
{
int rtszie = file.Read(buff, 1000);
readsize++rtsize;
}rtsize 的返回值总不是1000,循环几次后,rtsize 总是5,反正是个很小的值?到底什么原因?
int length = 0;
int readsize = 0CFile file("c:\\test.rmv", CFile::modeRead);
length = file.GetLength();while (readsize<length)
{
int rtszie = file.Read(buff, 1000);
readsize++rtsize;
}rtsize 的返回值总不是1000,循环几次后,rtsize 总是5,反正是个很小的值?到底什么原因?
virtual UINT Read( void* lpBuf, UINT nCount );
throw( CFileException );Return ValueThe number of bytes transferred to the buffer. Note that for all CFile classes, the return value may be less than nCount if the end of file was reached. 当读到文件的结尾时,rtsize的值会小于1000
CFile file("c:\\test.rmv", CFile::modeRead|CFile::typeBinary );
char buff[1024] = {0};
int length = 0;
int readsize = 0;CFile file("c:\\test.rmv", CFile::modeRead);
length = file.GetLength();while (readsize <length)
{
int rtszie = file.Read(buff, 1000);
readsize+=rtszie;
}
这个有错,你的结果表明你读了5次,并非文件长度是5字节。
该城楼上代码试试。
char buff[1024] = {0};
int length = 0;
int readsize = 0 CFile file("c:\\test.rmv", CFile::modeRead);
length = file.GetLength(); while (readsize <length)
{
int rtszie = file.Read(buff, 1000);
readsize++=rtsize; //少了=号,readzise不能正确赋值}
我发现:
Mackz 好像比较闲,每个月都有大量时间回帖,是不是学生呀?或是boss级人物?哈哈;
keiy 好像是全才啊,delphi。c++ builder,java,vc 大哥,还有您不会的么?呵呵!