C++想从ini文件中读取一整段Section的内容 用GetPrivateProfileSection 这个函数 但是只得到第一行的内容

并没有全部获取到..求大神解释charszStr[1024];::GetPrivateProfileSection("聊天消息",szStr,1024,"D:\\Msg\... 并没有全部获取到.. 求大神解释
char szStr[1024];
::GetPrivateProfileSection("聊天消息",szStr,1024,"D:\\Msg\\msg.ini");
这样使用函数 有问题么?
还有 我的配置文件
[聊天消息]
commandID:25432
name | string | 4
passwd | int | 4
content | string| 256

调用函数后 szStr 只获取到 commandID:25432 不解
求大神解释。。。
展开
 我来答
CChenwenjuan
2012-02-21 · 超过31用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:79.4万
展开全部
因为:GetPrivateProfileSection()函数是逐行取的
//插入数据
_TCHAR buf[200];
DWORD readlen=::GetPrivateProfileSection(strcection,buf,200,strIniPath);
_TCHAR *pbuf=buf;
size_t size=strlen(pbuf);
int i=0; //i记录总数据行数
while(size) //当取到的行长度不为0时,说明此行存在,继续取值
{
CString str=pbuf;

pbuf+=size+1;
size=strlen(pbuf);
i++;
}
最近刚写的,这样就能取到
但是这样取出来的数据还要分割字符串才能使用
拆字符函数:AfxExtractSubString()
binglink
推荐于2018-04-27 · TA获得超过1101个赞
知道小有建树答主
回答量:639
采纳率:0%
帮助的人:456万
展开全部
调用方法没错, 取得的结果缓冲区中, 行之间是用'\0'分隔的, 段结尾是连续的两个'\0'
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式