博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置信息写入到.ini文件中的方法
阅读量:4599 次
发布时间:2019-06-09

本文共 2184 字,大约阅读时间需要 7 分钟。

在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:

  
一.将信息写入.INI文件中   
1.所用的WINAPI函数原型为:   
BOOL WritePrivateProfileString(   LPCTSTR lpAppName,   LPCTSTR lpKeyName,   LPCTSTR lpString,   LPCTSTR lpFileName   );   
其中各参数的意义   
LPCTSTR lpAppName 是INI文件中的一个字段名.   
LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.   
LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.   
LPCTSTR lpFileName 是完整的INI文件名.   

2.具体使用方法:设现有一名学生,需把他的姓名和年龄写入 c:\stud\student.ini 文件中.  CString strName,strTemp;   

int nAge;   
strName="张三";   
nAge=12;   
::WritePrivateProfileString("StudentInfo","Name",strName,"c:\\stud\\student.ini"); 此时c:\stud\student.ini文件中的内容如下:   
[StudentInfo]   
Name=张三   
3.要将学生的年龄保存下来,只需将整型的值变为字符型即可:   
strTemp.format("%d",nAge);  整形值被格式化到字符串中
::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\\stud\\student.ini");

二.将信息从INI文件中读入程序中的变量   

1.所用的WINAPI函数原型为:   DWORD GetPrivateProfileString(   LPCTSTR lpAppName,   LPCTSTR lpKeyName,   LPCTSTR lpDefault,   LPTSTR lpReturnedString,   DWORD nSize,   LPCTSTR lpFileName   );   
其中各参数的意义   
前二个参数与 WritePrivateProfileString中的意义一样.   
lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.   lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.   
nSize : 目的缓存器的大小.   
lpFileName : 是完整的INI文件名.   
2.具体使用方法:现要将上一步中写入的学生的信息读入程序中.   
CString strStudName;   
int nStudAge;   
GetPrivateProfileString("StudentInfo","Name","默认姓名",strStudName.GetBuffer(MAX_PATH),MAX_PATH,"c:\\stud\\student.ini");   
执行后 strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名".   
注意:如果在读入的ini文件不存在,则按默认值生成相应的ini文件

 3.读入整型值要用另一个WINAPI函数:   

UINT GetPrivateProfileInt(   LPCTSTR lpAppName,   LPCTSTR lpKeyName,   INT nDefault,   LPCTSTR lpFileName   );   
这里的参数意义与上相同.使用方法如下:   
nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\\stud\\student.ini");
  补充三点:   
1.INI文件的路径必须完整,文件名前面的各级目录必须存在,否则写入不成功,该函数返回 FALSE 值.   
2.文件名的路径中必须为 \\ ,因为在VC++中, \\ 才表示一个 \ .   
3.也可将INI文件放在程序所在目录,此时 lpFileName 参数为: ".\\student.ini".

 

PS:面试宝典的一个题目

#include
using namespace std;int main(){ int a,x; for(a=0,x=0;a<=1&& !x++;a++) { a++; } cout<
<
<

 

转载于:https://www.cnblogs.com/fickleness/p/3148988.html

你可能感兴趣的文章
批处理文件脚本总结
查看>>
快速排序C++代码
查看>>
mui搜索框 搜索点击事件
查看>>
bzoj 5289: [Hnoi2018]排列
查看>>
IE10 招贤纳意问题整理文章-安装卸载、功能设置篇
查看>>
joomla处境堪忧
查看>>
Jquery-AJAX
查看>>
python 在windows环境下 压缩文件
查看>>
CSS 动画总结
查看>>
mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by
查看>>
LeetCode55 Jump Game
查看>>
poj 3764 The xor-longest Path (01 Trie)
查看>>
预备作业01
查看>>
【Spark】Spark-Redis连接池
查看>>
【云计算】使用supervisor管理Docker多进程-ntpd+uwsgi+nginx示例最佳实践
查看>>
Ubuntu16.04下配置ssh免密登录
查看>>
实验二 2
查看>>
will-change属性
查看>>
android学习笔记54——ContentProvider
查看>>
Unity3d android开发之触摸操作识别-双击,滑动去噪处理
查看>>