C++使用Unicode字符集时配置文件读写

来源:互联网 发布:大数据平台架构图深度 编辑:程序博客网 时间:2024/06/15 04:39

要注意Unicode字符和ANSI字符的转换,以免出现乱码


例如配置文件名称为Setting.ini


其中内容如下:

[Parameter]CameraID=1024FilePath=E:/Output/

读配置文件中数字和字符串代码如下:

int CameraID;char path[128];void LoadPara() {LPCWSTR strPath(TEXT("./Setting.ini"));LPCWSTR strTitle( TEXT("Parameter"));LPCWSTR strKey;strKey = TEXT("CameraID"); //摄像机ID,默认1024CameraID = GetPrivateProfileInt(strTitle, strKey, 1024, strPath);//整形参数const int BUFF_LEN = 128;//读取字符串的缓存TCHAR buff[BUFF_LEN];int iLength=0;strKey = _T("FilePath");//结果存储路径GetPrivateProfileString(strTitle, strKey, L"E:/Output/",buff, BUFF_LEN, strPath);//字符串参数iLength = WideCharToMultiByte(CP_ACP, 0, buff, -1, NULL, 0, NULL, NULL);WideCharToMultiByte(CP_ACP, 0, buff, -1, path, iLength, NULL, NULL);//TCHAR转char}
void SavePara(){CString strPath(_T("./Setting.ini"));CString strTitle( _T("Parameter"));CString strKey;CString strValue;strValue.Format(_T("%d"),(CameraID));strKey = _T("CameraID"); //WritePrivateProfileString(strTitle,strKey,strValue,strPath);strValue.Format(_T("%s"),CStringW(path));strKey = _T("FilePath"); //WritePrivateProfileString(strTitle,strKey,strValue,strPath);}


0 0