#include
#include
#define APP_MODE_CHAR 1
#define APP_MODE_INT 2
#define APP_TURE 0
#define APP_FALSE 1
static char g_filename[20]="config.txt";//文件名
int APP_GetInfo(int mode, char *name,char *infochar, int *infoint)
{
FILE *fd = NULL;
char buffer[100];//每行最多100字节
int num = 1;
//打开文件
fd = fopen(g_filename, "r");
if ( NULL == fd)
{
printf("fopen error!\n");
return APP_FALSE;
}
//读取文件信息
while (1)
{
if(fgets( buffer, 100, fd)== NULL)
{
break;
}
num = strlen(buffer);
if ( buffer[0] != '#' && num > 2)
{
if(strncmp(buffer,name,strlen(name)) == 0)
{
switch(mode)
{
case APP_MODE_CHAR :
sscanf(buffer,"%*[^=]=%s",infochar);
printf("%s : %s\n",name,infochar);
break;
case APP_MODE_INT :
sscanf(buffer,"%*[^=]= %d",infoint);
printf("%s : %d\n",name,*infoint);
break;
}
}
}
}
if ( num <= 0 )
{
return APP_FALSE;
}
return APP_TURE;
}
int main(int argc, char *argv)
{
int ret;
char A;
int B;
int temp;
char temp1[3];
ret = APP_GetInfo(APP_MODE_CHAR,"MY_NAME",temp1,&B);
if ( APP_TURE != ret)
{
printf("cannot find name \n");
return 1;
}
ret = APP_GetInfo(APP_MODE_INT,"MY_AGE",&A,&temp);
if ( APP_TURE != ret)
{
printf("cannot find age \n");
return 1;
}
return 0;
}
文件config.txt:
#年龄
MY_AGE=23
#姓名 MY_NAME=张三