C++操作ini文件问题

发布网友 发布时间:2022-04-23 22:50

我来回答

4个回答

热心网友 时间:2023-08-15 11:39

配置文件中经常用到ini文件,在VC中其函数分别为:
写入.ini文件:
BOOL WritePrivateProfileString(
LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名
LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名
LPCTSTR lpString, // 键值,也就是数据
LPCTSTR lpFileName // INI文件的路径
);
读取.ini文件:
DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名
LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名
LPCTSTR lpDefault, // 如果lpReturnedString为空,则把个变量赋给lpReturnedString
LPTSTR lpReturnedString, // 存放键值的指针变量,用于接收INI文件中键值(数据)的接收缓冲区
DWORD nSize, // lpReturnedString的缓冲区大小
LPCTSTR lpFileName // INI文件的路径
);

热心网友 时间:2023-08-15 11:39

#include <afx.h>
#include <windows.h>
#include <iostream.h>

CString NAME="zhang san";
int AGE=20;
char inBuf[256];
char path[255] ;

void GetPath()
{
GetCurrentDirectory(256,inBuf);
sprintf(path,"%s\\data.ini",inBuf);//设置ini文件的全路径

}
void save()
{

//获取当前程序的路径
//第一个参数是路径的最大长度,第二个参数是路径的字符串
CString strAGE;
strAGE.Format("%d",AGE);
GetPath();

WritePrivateProfileString("Student","name",NAME,path);
WritePrivateProfileString("Student","age",strAGE,path);

}
void read()
{
int age;
GetPrivateProfileString("Student","name","",NAME.GetBuffer(NAME.GetLength()+1),NAME.GetLength()+1,path);
age = GetPrivateProfileInt("Student","age",0,path);

cout<<NAME<<" "<<age<<endl;
}

void main()
{

save();
read();
}

热心网友 时间:2023-08-15 11:40

INI是个key-value类型的文件,一般都有现成的代码和库,Windows 有API实现,GNU Libc 有个 key-value file 做这个。

实在懒的用上述两者,或懒的自己写一个INI读写类,用 STL 的 map

热心网友 时间:2023-08-15 11:40

用 Windows 的 API 函数 GetPrivateProfileString 之类的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com