网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读
源代码在线查看: 12.5.2 文件的读取.txt
12.5.2 文件的读取
下面,我们在 File程序中利用 CFile类提供的方法来实现文件的读取操作。首先将 CFileView类的
OnFileRead函数中已有代码注释起来,然后添加如例 12-19所示代码。
、
例 12-19
void CFileView : :OnFileRead()
CFile file("6.txt".CFile: :modeRead);
char *pBuf;
DWORD dwFileLen;
dwFileLen=file .GetLength() ;
pBuf=new char[dwFileLen+l];
pBuf[dwFileLen)=0;
file.Read(pBuf.dwFileLen) ;
file .Close ( ) ;
MessageBox(pBuf) ;
在如例 12-19所示的代码中,首先构造了一个 CFile类型的文件对象:白le,因为这时需要读取文件
的内容,所以将该文件的访问方式选择为 CFile::modeRead;接着,利用 CFile
! 类的 GetLength方法得到文件长度,并利用该长度构造用来存放数据的缓存区 (pBuf所指向的
内存),注意:这里为该缓存区分配内存时多分配了一个字节,并将分配内存后得到的缓存区的最后
一个字节元素赋值为 0,用来作为所读取的字符串数据的结尾。然后利用 CFile类的 Read方法读取
文件,其中第二个参数,即读取的数据总数,可以用己得到的文件长度作为参数值传递进去。当对
文件的读取操作完成之后,调用 CFile类的 Close方法关闭文件。最后,调用 MessageBox函数将读
取到的数据显示出来。
运行 File程序,单击【文件操作飞读取文件】菜单项,从程序弹出的消息框中,将可以看到读取到
了正确的数据。通过上面的例子,读者可以看到, CFile类的使用非常方便,因此在利用 MFC编程
时,如果涉及文件操作,最好采用 CFile类来完成。