想用个数组读配置文件,不知道怎么写

kshaoye 2012-07-10 02:28:12


文件内容

[list]
item_no=4
item0 = 0, 0, 0,
item1 = 200, 1, 0, \B003\C048008\fk3232\c255000000000\S05\s000255000000hi, 你好
item2 = 30, 4, 3, \ct\b255255000000\C000008abc
item3 = 500, 20, 5, \N02

读item_no很简单,不讨论,值得一提的是4是个变量,即item的数量
item0,item1,item2,item3……itemN我想用个数组来读
for(i=0;i<item_no;i++)
{
item[i]=GetPrivateProfileString(lpSection,lpKey,lpValue,/*这里怎么写?*/,iBufferSize,lpPath);
}
...全文
215 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiandingzhe 2012-07-12
  • 打赏
  • 举报
回复


// 读出有多少item
int num_items = read_item_number();

// 分配空间
int* store = (int*) malloc( 3 * num_items * sizeof(int) );

// 读出每个item
int a,b,c;
for (int i=0; i<num_items; i++) {
read_next_item( &a, &b, &c );
store[3*i] = a;
store[3*i+1] = b;
store[3*i+2] = c;
}

jiandingzhe 2012-07-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

item[0]-item[n]是个数组
数组里存的是字符串
然后我该用二维数组还是**?
数组里的每一项存的都是字符串
[/Quote]
你每个item都是三个数吗?这样不难。
你先读出有多少元素,然后malloc三倍的空间,然后就往里塞呗。
不需要二维数组,这个脚标又不难算。
KING_314 2012-07-11
  • 打赏
  • 举报
回复

char str[255];
for(i=0;i<item_no;i++)
{
sprintf(str,"item%d",i);
item[i]=GetPrivateProfileString(lpSection,lpKey,lpValue, str,iBufferSize,lpPath);
}

kshaoye 2012-07-10
  • 打赏
  • 举报
回复
字符串数组:char str[10][20] //十个字符串,最大长度为20
指针:char (*p)[20]; //定义指针p,指向字符串
然后可以赋值: p = &str[0];
通过*(p+i)来访问所有字符串
半条虫子(26095055) 15:26:17
你为毛要定义指针p指向字符串呢。你为毛不能这个数组就是用来放指针的,然后这些指针指向的内存动态分配
kshaoye 2012-07-10
  • 打赏
  • 举报
回复
item[0]-item[n]是个数组
数组里存的是字符串
然后我该用二维数组还是**?
数组里的每一项存的都是字符串
kshaoye 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
c programming language里面,不定数组读取可以用循环来读
然后函数参数使用一个类似虚表的数组传,设定一个结束数组的符号。即可
[/Quote]
我主要不知道怎么写用来接收输出参数的这个参数
cwh5635 2012-07-10
  • 打赏
  • 举报
回复
c programming language里面,不定数组读取可以用循环来读
然后函数参数使用一个类似虚表的数组传,设定一个结束数组的符号。即可

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧