如何 read & write 文本文件

xiaqingjie 2003-12-24 12:28:11
请教大家,如何在VC++中方便 read & write 文本文件?
...全文
64 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jennifergiant 2003-12-24
  • 打赏
  • 举报
回复
文件的读写
文件读写的最普通的方法是直接使用CFile进行,如文件的读写可以使用下面的方法:
  //对文件进行读操作
  char sRead[2];
  CFile mFile(_T("user.txt"),CFile::modeRead);
  if(mFile.GetLength()<2)
  return;
  mFile.Read(sRead,2);
  mFile.Close();
  //对文件进行写操作
  CFile mFile(_T("user.txt "), CFile::modeWrite|CFile::modeCreate);
  mFile.Write(sRead,2);
  mFile.Flush();
  mFile.Close();
  虽然这种方法最为基本,但是它的使用繁琐,而且功能非常简单。我向你推荐的是使用CArchive,它的使用方法简单且功能十分强大。首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可以非常方便地存储各种复杂的数据类型了。它的使用方法见下例。
  //对文件进行写操作
  CString strTemp;
  CFile mFile;
  mFile.Open("d:\\dd\\try.TRY",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
  CArchive ar(&mFile,CArchive::store);
  ar<<  ar.Close();
  mFile.Close();
  //对文件进行读操作
  CFile mFile;
  if(mFile.Open("d:\\dd\\try.TRY",CFile::modeRead)==0)
  return;
  CArchive ar(&mFile,CArchive::load);
   ar>>strTemp;
  ar.Close();
  mFile.Close();
  CArchive的 << 和>> 操作符用于简单数据类型的读写,对于CObject派生类的对象的存取要使用ReadObject()和WriteObject()。使用CArchive的ReadClass()和WriteClass()还可以进行类的读写,如:
  //存储CAboutDlg类
  ar.WriteClass(RUNTIME_CLASS(CAboutDlg));
  //读取CAboutDlg类
  CRuntimeClass* mRunClass=ar.ReadClass();
  //使用CAboutDlg类
  CObject* pObject=mRunClass->CreateObject();
  ((CDialog* )pObject)->DoModal();
如果你要进行的文件操作只是简单的读写整行的字符串,我建议你使用CStdioFile,用它来进行此类操作非常方便,如下例。
  CStdioFile mFile;
  CFileException mExcept;
  mFile.Open( "d:\\temp\\aa.bat", CFile::modeWrite, &mExcept);
  CString string="I am a string.";
  mFile.WriteString(string);
  mFile.Close();
yifengling0 2003-12-24
  • 打赏
  • 举报
回复
是fstream:)

不过VC嘛能用VC封装的最好不用c++标准库
yifengling0 2003-12-24
  • 打赏
  • 举报
回复
hehe 晚了。。
也可以用iostream的类




ISunwu 2003-12-24
  • 打赏
  • 举报
回复
yes
zhucde 2003-12-24
  • 打赏
  • 举报
回复
创建文件:
CString filename;
filename="c:\\aa.txt";
CStdioFile file;
CString mystr;
if(file.Ope(filename,CFile::modeCreate|CFile::modeWrite|CFile::typeText)==0)
{
mystr="创建文件"+filename+"失败";
AfxMessageBox(str);
return;
}

读文件:
CFile myfile;
CString m_disp;
myfile.Open("c:\\aa.txt",CFile::modeRead);
myfile.SeekToBegin();
myfile.Read(m_disp.GetBufferSetLength(myfile.GetLength()),myfile.GetLength());

写文件:
CFile file;
file.Open("c:\\aa.txt",CFile::modeWrite);

file.WriteString(str);
file.SetLength(file.GetPosition());
file.Close();
vcforever 2003-12-24
  • 打赏
  • 举报
回复
agree upstairs !
hehe........
bluebohe 2003-12-24
  • 打赏
  • 举报
回复
太晚了,蹭分中

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧