首页 > 编程 > C > 正文

C语言读写配置文件的方法

2020-01-26 15:01:46
字体:
来源:转载
供稿:网友

本文实例讲述了C语言读写配置文件的方法。分享给大家供大家参考。具体如下:

CException.h如下:

/************************************************************************//*       make0000@msn.com   *//************************************************************************//************************************************************************/#include "stdio.h"    #include "conio.h" #include "signal.h"    #include "setjmp.h" #include "assert.h" #ifdef __cplusplus   #include "iostream"          #include "exception"   extern "C"{     #define dllexport __declspec(dllexport)           jmp_buf Jmp_Buf;     int E;     #define Exception 0x00000     #define e Exception     #define try if(!(E=setjmp(Jmp_Buf)))     #define last_error() E     #define catch(val) else     #define throw(val) longjmp(Jmp_Buf,val)       #define check(expersion) assert(expersion)     #define GetError() errno        dllexport void sig_usr(int);     dllexport char* getTime();    }#else   #define dllexport __declspec(dllexport)         jmp_buf Jmp_Buf;   int E;   #define Exception 0x00000   #define e Exception   #define try if(!(E=setjmp(Jmp_Buf)))   #define last_error() E   #define catch(val) else   #define throw(val) longjmp(Jmp_Buf,val)  #define check(expersion) assert(expersion)   #define GetError() errno  dllexport void sig_usr(int);   dllexport char* getTime();#endif

File.h如下:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #define SIZE 128 #include "CException.h" #define export __declspec(dllexport) //读取配置文件. int read_file(char* filename,char* key,char* value); //写配置文件. int write_file(char* filename,char* key,char* value); //释放文件. int release(); //写入节. int write_section(char* filename,char* section); int read_section(char* filename); int getAuthor(char* value); void getVersion(char* value);

File.c如下:

#include "File.h" #include <string.h> int read_file(char* filename,char* key,char* value) {  int flag=0;  char buffer[SIZE];  FILE *file=fopen(filename,"r");  try {   if(file==NULL)   {   flag=1;   throw(flag);   }   else  {   while(fgets(buffer,SIZE,file)!=NULL)   {    int i=0,j=0,len=strlen(key);    while(buffer[i]!='/0')    {     if(buffer[i]=='$'&&buffer[i+len+1]=='=')     {     j=i+len+2;      while(buffer[j]!='/0'&&buffer[j]!=';')      {      int h=0;      if(buffer[i+1]==key[i])      {       //printf("%c",buffer[j]);       value[j-i-len-2]=buffer[j];      }      j++;      }     break;     }     else if(buffer[i]=='/'&&buffer[i+1]=='/'||buffer[i]==';')     {     break;     //comment     }    i++;    }   }   }  }  catch(Exception)  {   flag=2;   fclose(file);   printf("can't open file %s",filename);   exit(1);  }  fflush(file);  fclose(file);  return flag; } int write_file(char* filename,char* key,char* value) {  int flag=0;  FILE* file;  file=fopen(filename,"a");  try {  if(file==NULL)  {  flag=1;  throw(flag);  }  fprintf(file,"$%s=%s/n",key,value);  }  catch(Exception)  {  printf("Can't write file %s",filename);  exit(1);  }  fflush(file);  fclose(file);  return flag; } int write_section(char* filename,char* section) {  int flag=0;  FILE* file=NULL;  try {  file=fopen(filename,"a");  if(file!=NULL)  {   fprintf(file,"[%s]/n",section);  }  else {   int flag=1;   throw(flag);  }  }  catch(Exception)  {  printf("can't open file %s",filename);  exit(0);  }  fflush(file);  fclose(file);  return flag; } int release() {  int flag=1;  return flag; } int read_section(char* filename) {  return 0; } int getAuthor(char* value) {  char author[128]="武汉软件工程职业学院计算机应用系";  int i=0;  for(i=0;i<strlen(author);i++)  {  value[i]=author[i];  }  return 0; } void getVersion(char* value) {  char version[128]="2009//05//01";  int i=0;  for(i=0;i<strlen(version);i++)  {  value[i]=version[i];  } } /************************************************************************** void main() {  char* str=NULL;  char author[120];  char buffer[128];  char buffer1[128];  char buffer2[128];  read_file("F://exercise//C++!C//sys.ini","password",buffer);  read_file("F://exercise//C++!C//sys.ini","username",buffer1);  read_file("F://exercise//C++!C//sys.ini","driver",buffer2);  printf("password=%s/n",buffer);  printf("/n");  printf("username=%s/n",buffer1);  printf("/n");  printf("driver=%s/n",buffer2);  getAuthor(author);  printf("/n");  printf("author=%s",author);  release(); }

希望本文所述对大家的C语言程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选