- 论坛徽章:
- 0
|
题目
ini文件的格式为
name1=value1
name2=value2
通过参数命令行输入ini文件名和name,将ini文件中的指定name的value显示出来
程序实现
编辑test.ini文件
$cat>test.ini
user=neusoft_user
passwd=neusoft_passwd
server=orcl
编辑程序testini.c 实现模拟读取ini文件功能
$vi testini.c
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
FILE *ini;
char *key,*p,line[100],str1[100],str2[100];
int f1=0,c1,c2;
if(argc!=3)
{
printf("Usage:%s *.ini properyNamen",argv[0]);
exit(1);
}
if((ini=fopen(argv[1],"r"))==NULL)
{
printf("file not existn");
exit(1);
}
while(!feof(ini))
{
fgets(line,1024,ini);
key=strchr(line,'=');
if(key)
{c1=strlen(key);
c2=strlen(line)-c1;
strncpy(str1,line,c2);
if(strcmp(argv[2],str1)==NULL)
{f1=1;
strcpy(str2,key+1);
printf("name=%s value=%s n",str1,str2);
return(0);
}
}
else
{
printf("null propery");
return(0);
}
}
if(feof(ini)&&(f1==0))
printf("read %s properyErrorn",argv[2]);
}
编译结果
输入: ./a.out testini.c user
输出:user=neusoft_user
但输入第二个参数就显示 read *** properyError,
Eg:
输入:./a.out testini.c passwd
输出:read passwd properyError
不知道为什么会出错,我检查不出来自己的程序到底什么地方出了毛病,
请帮我调试一下,解决问题不胜感激,
全天在线望眼欲穿等待回复~ |
|