可以使用传统的pascal操作文件的方法或者使用文件流。
1、传统文件操作方法
assignfile(f,'c:\test');
rewrite(f);
用blockwrite或write写入二进制信息;
closefile(f);
2、文件流
try
f:=tfilestream.create(filename,fmcreate
or
fmopenwrite);
文件操作,写入数据
finally
f.free;
end;
char* pFileName = "test.dat";
CStdioFile f1;
f1.Open( pFileName, CFile::modeCreate
| CFile::modeWrite | CFile::typeText ) )
加上modeCreate
参考代码如下:
BOOL CnewoneDlg::OutputBase(void)
{
// 1 组合到总字符串strSum中
CString strSum = _T(""), strTmp;
for(int i=0; i<50; i++)
{
strTmp.Format(_T("\r\n\r\n%d."), i);
strSum += strTmp;
strSum += _T("\r\n Sex: ") + A[i].Sex;
// 2 写入文件
CFile cf;
if(!cf.Open(_T("D:\\TXL.TXT"), CFile::modeCreate|CFile::modeWrite))
{
AfxMessageBox(_T("D:\\TXL.TXT \r\n Open failed when write."));
return FALSE;
}
int len = strSum.GetLength()
cf.Write(strSum.GetBuffer(len), len);
cf.Close();
strSum.ReleaseBuffer();
return TRUE;
}
void CnewoneDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
OutputBase();
EndDialog(1);
}
文件没有创建怎么能读呢?你要先创建文件,然后再进行读写操作。这样运行时就不会错误了
参考:谭浩强 《C语言程序设计教程》第十二章
用c++的fstream流,进行文件处理可能会好些,MFC也就是对这些的封装。
ofstream out(filname);
out<
有时候,自己写这些比MFC的直观些。