C++ 数据写入文件与读回
2018-07-20 来源:open-open
软件制作过程常常需要将一些设置参数存成文件以供下次启动时调用,这时运用CArchive类来进行相关操作显得相当方便。
将数据写入文件:
int data = 123; CFile mydatafile(L"datasave.h264player", CFile::modeCreate | CFile::modeWrite);//datasave.h264player为文件名,使用的是相对路径,文件被存成在本软件目录下 CArchive mywiringdatafile(&mydatafile, CArchive::store); mywiringdatafile << data;//将数据写入 mywiringdatafile.Close(); mydatafile.Close();
将数据读回:
int data; CFile mydatafile(L"datasave.h264player", CFile::modeRead); CArchive mywiringdatafile(&mydatafile, CArchive::load); mywiringdatafile >> data;//读回文件的数据到data变量里面 mywiringdatafile.Close(); mydatafile.Close();
由上面的写读操作也可以发现一个问题,我们必须知道文件的存储结构才能将数据正确地读回,这对于数据起到一种较为初级的保护作用。
而有些时候我们需要一行一行的读写数据,MFC中我们可以借助CStdioFile类来做这件事
读取行数据:
CStdioFile mPcbFile; mPcbFile.Open(L"PCB//JK-M012-V4.apr", CFile::modeRead);//文件打开 CString mLineData; while (mPcbFile.ReadString(mLineData)) { //处理mLineData中读到的行数据 } mPcbFile.Close();//文件关闭写入数据(不带中文):
CStdioFile file; file.Open(L"writetest.txt", CFile::modeCreate | CFile::modeWrite);//文件打开 CString str=L"asd\n"; file.WriteString(str);//写入行数据 file.WriteString(str);//写入行数据 file.Close();//文件关闭
由于字符集的影响,如果用的是unicode字符集,要用CStdioFile像上面那样来写入中文的话会出现问题,需要包含头文件locale.h,然后将上面带码修改如下:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐