CFile写入文件

CFile 提供了一些常用的操作函数,如表 1-2 所示。

1-2  CFile 操作函数

函数

含义

Open

打开文件

Close

关闭文件

Flush

刷新待写的数据

Read

从当前位置读取数据

Write

向当前位置写入数据

GetLength

获取文件的大小

Seek

定位文件指针至指定位置

SeekToBegin

定位文件指针至文件头

SeekToEnd

定位文件指针至文件尾

GetFileName

获取文件名,如: “NOTEPAD.EXE”

GetFilePath

获取文件路径,如: “C:/WINDOWS /NOTEPAD.EXE”

GetFileTitle

获取文件标题,如: “NOTEPAD”

GetPosition

获取当前文件指针

GetStatus

获取当前文件的状态,返回一个 CFileStatus

#Remove

静态方法,删除指定文件

#Rename

静态方法,重命名指定文件

注意最后两个静态函数,其实它们封装了 Windows API 中关于文件管理的函数。

 

使用 CFile 操作文件的流程如下:

构造一个 CFile 对象。

调用 CFile::Open() 函数创建、打开指定的文件。

调用 CFile::Read() CFile::Write () 进行文件操作。

调用 CFile::Close() 关闭文件句柄。

 

 

文件指针的位置设置可以使用

Seek( LONG lOff , UINT nFrom )   把文件指针移动到指定位置

lOff  :是指针偏移字节数,若向后偏移则为正数,若向前偏移,则为负数。

nFrom MSDN 上有三种取值:

CFile::begin   从文件开头开始算起, lOff 为正数;

CFile::current  当前位置开始算起;

CFile::end     从文件结尾开始算起, lOff 为负数;

SeekToBegin( )      把文件指针移到文件开头

SeekToEnd( )          把文件指针移到文件末尾

GetPosition( )        返回当前文件指针的位置

 

获取文件的字节数可用 GetLength( )   此函数的返回值为 DWORD ,但可直接用来分配数组元素数目,例如:

DOWRD len=file.GetLength();

char *pBuf=new char[len+1]   / int *pBuf=new int[len/4]

char 占一个字节, int 占四个字节。

 

写入文件:

CFile file;

file.Open("E://VC//1.txt",CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate,NULL);

file.Write("HelloWorld",strlen("HelloWorld"));  

 //Write( const void* lpBuf , UINT nCount lpBuf 是写入数据的 Buf 指针, nCount Buf 里需要写入文件的字节数

file.close( );

 

读取文件:

CFile file;

file.Open("E://VC//1.txt",CFile::modeRead,NULL); 

DWORD len=file.GetLength( );

char Buf[len+1];

Buf[len]=0;  //0 终止字符串,用于输出。

file.Read(Buf,len);   //Read( void* lpBuf , UINT nCount ) lpBuf 是用于接收读取到的数据的 Buf 指针 nCount 是从文件读取的字节数

MessageBox(Buf);

 

 

 

 

void CSCF_SETDlg::OnOK()
{
    // TODO: Add extra validation here
   
                CFile   file( "D:/Spot.txt ",   CFile::modeCreate   |   CFile::modeWrite); 
              
                for(int   i=0;   i <30;   i++)
                file.Write( "......... ",strlen( "....... "));     //写的内容,就不赘述了
        //    if(!file.open( "filename ",CFile::modeCreate|CFile::modeReadWrite|CFile::typeBinary))
//{
//MessageBox("fail");
//}
              
                file.Close();


    //CDialog::OnOK();

}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值