最最简单的CFile写文件示例
看书看久了,渐渐的有些感觉了,今天做个实例吧。
试了最简单的CFile类读写文件,下面这个是最简单的写文件例子,供和我一样的入门者参考。
新建一个基于对话框的应用程序,在对话框中添加一个按钮,然后添加消息响应函数
void CBDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CFile file1;
CString fnStr;
fnStr="C:\\1.txt";
file1.Open(fnStr,CFile::modeCreate|CFile::modeWrite);
CString fContent;
fContent="联合国秘书长欢迎裁军谈判会议确定2009年工作计划\n";
char szName[60];
strcpy(szName,fContent);
file1.Write(&szName,sizeof(szName)); //此句可正常写入
// file1.Write(&fContent,sizeof(fContent)); //此句写入的结果为"$E7 "
file1.Close();
}
以上示例可正确的新建并写入内容,当然,在szName[60]比实际字符长时,末尾会写入一些无意义的字符。
用到的一个函数
strcpy
原型:extern char *strcpy(char *dest,char *src);
用法:#include <string.h>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
举例:
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}
给一个很经典版本的strcpy函数源码:
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}