MFC文件操作

来源:互联网 发布:人工智能程序原理 编辑:程序博客网 时间:2024/06/06 01:02


1、背景

软件重启如果要保存上次设置的参数,那么就需要用到文件操作。


2、几个常见的问题

1)字符串写入不完整

file.Write(str.GetBuffer(),len*sizeof(TCHAR));
不能直接用sizeof(str)求长度。


2)换行

 换行一般有三种格式: “\n" "\r\n" "\r" 用"\r\n"最保险

std::ofstream fout("..\\project\\CameraParam.dat");if (fout.is_open()){fout<<"CameraNum ";fout<<CameraNum<<"\r\n";fout<<"NetNum ";fout<<NetNum<<"\r\n";
<span style="white-space:pre"></span>}

3、文件操作

1)目录存在判定

if(!SetCurrentDirectory(_T("..\\project"))){return MODE_DEFINE;//文件夹不存在,直接退出文本模式}

2)文件存在判定
if (!PathFileExists(_T("..\\project\\mode.dat"))){return MODE_DEFINE;//文件不存在,直接退出文本模式}


3)文件读取
int a;char str[20];memset(str, 0, sizeof(char));std::ifstream fin("..\\project\\mode.dat");fin>>str;fin>>a;fin.close();

4)文件写入

std::ofstream fout("..\\project\\mode.dat");if (fout.is_open()){fout<<"FileMode ";if ( MODE_SET == mode ){fout<<1<<"\r\n";}else if ( MODE_RUN == mode ){fout<<2<<"\r\n";}else{fout<<0<<"\r\n";}fout.close();}

5)读取特定值

std::ifstream fin("..\\project\\CameraParam.dat");int a;char str[20];memset(str, 0, sizeof(char));int line = 0;while (fin != NULL){fin>>str;fin>>a;line++;if( strcmp("CameraNum",str) == 0 ){ fin.close();return a;//返回相机数}}


0 0
原创粉丝点击