C++操作ini文件问题
一个save.cpp,里面有一个save函数,专门写一个ini(在当前路径,文件名叫data.ini)文件,格式要:name=NMAEage=AGE另一个read.cpp...
一个save.cpp,里面有一个save函数,专门写一个ini(在当前路径,文件名叫data.ini)文件,格式要:
name=NMAE
age=AGE
另一个read.cpp,里面有一个save函数,专门读data.ini文件,把NAME和AGE读取出来,存在变量Name和Age
PS:当data.ini中有数据时,更改NAME和AGE,而不是在下面创建新的项 展开
name=NMAE
age=AGE
另一个read.cpp,里面有一个save函数,专门读data.ini文件,把NAME和AGE读取出来,存在变量Name和Age
PS:当data.ini中有数据时,更改NAME和AGE,而不是在下面创建新的项 展开
4个回答
推荐于2017-09-01 · 知道合伙人互联网行家
关注
展开全部
配置文件中经常用到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文件的路径
);
写入.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文件的路径
);
展开全部
#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();
}
#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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
INI是个key-value类型的文件,一般都有现成的代码和库,Windows 有API实现,GNU Libc 有个 key-value file 做这个。
实在懒的用上述两者,或懒的自己写一个INI读写类,用 STL 的 map
实在懒的用上述两者,或懒的自己写一个INI读写类,用 STL 的 map
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 Windows 的 API 函数 GetPrivateProfileString 之类的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询