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;
}