CFile中如何确定文件结尾??

kernalandkernal 2004-04-09 04:08:02
大家好:
在用CFile过程中,如何确定当前文件指针已经移动到文件结尾??
谢了先!!
...全文
371 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjancn 2004-04-09
可以通过文件长度控制。 CFile::GetFileLength(),以及 CFile::GetPosition()来看现在的位置是否已到尾。
也可以通过读文件内容进行控制,至尾后再读返回错. CFile::Read()的返回值来判断是否到尾。
回复
zhjie374 2004-04-09
楼上的OK
回复
cmx98 2004-04-09
CFile::GetLength
virtual DWORD GetLength( ) const;
throw( CFileException );

Return Value
The length of the file.

Remarks
Obtains the current logical length of the file in bytes, not the amount.

CFile::GetPosition
virtual DWORD GetPosition( ) const;
throw( CFileException );

Return Value
The file pointer as a 32-bit doubleword.

Remarks
Obtains the current value of the file pointer, which can be used in subsequent calls to Seek.


用这两个函数取得文件大小和现在的位置,判断一下就可以了。
回复
x0554 2004-04-09
CFile::SeekToEnd

//example for CFile::SeekToEnd
extern CFile cfile;
DWORD dwActual = cfile.SeekToEnd();

回复
ANewGuy 2004-04-09
CFile::GetPosition() >= CFile::GetLength() ? 文件到达末尾 : 没有到末尾
回复
swordning 2004-04-09
while(file.Read(buf,buflen))
{
........
}
回复
快乐鹦鹉 2004-04-09
先获得文件长度。然后就知道是不是超过了。
回复
Pipi0714 2004-04-09
参照MSDNCFile里面有函数可以判断,或者首先获得整个文件所占用的字节数然后判断
回复
kmlin 2004-04-09
如果读到的字节数小于应读的字节数,则到结尾了。
int lMax = 80;
char buf[80+1];

while(1)
{
int i = file.Read(buf, lMax );
if(i< lMax)
break;
}
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告