luxingjyp 2004年12月22日
ifstream 读取文件问题
以下是我的一读取文件函数,用的是C++的标准库ifstream,奇怪的是在循环体内读取几次后得到的数据就不对了,如果改成用MFC的CFile类来读取就是正确的,不解


BOOL AddGroup(LPCTSTR lpszGroupName, LPCTSTR lpszFileName)
{
char szBuffer[MAX_PATH];
::ZeroMemory(szBuffer, sizeof(szBuffer));
ifstream File(lpszFileName);
if(File)
{
// 文件标志
File.read(szBuffer, 20);

// 单元数量
int nCellSize = 0;
File.read((char *)&nCellSize, 2);

// 组类型
int nGroupType = 0;
File.read((char *)&nGroupType, 1);

// 读出每单元的数据(出错在此循环体内)
for(int i = 0; i < nCellSize; i++)
{
// 单元名称
::ZeroMemory(szBuffer, sizeof(szBuffer));
File.read(szBuffer, 20);

// 类型数量
DWORD dwTypeSize = 0;
File.read((char *)&dwTypeSize, 4);

// 保存文件指针
streampos InFilePos = File.tellg();

// 移动到下一单元处
File.seekg(dwTypeSize * nGroupType, ios::cur);
}

File.close();
return TRUE;
}

return FALSE;
}
...全文
168 点赞 收藏 13
写回复
13 条回复

还没有回复,快来抢沙发~

发动态
发帖子
VC/MFC
创建于2007-09-28

7889

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告