绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
C语言读写配置文件--转载
2019-12-19 20:46:54

[1].[代码] CException.h 跳至 [1] [2] [3]/************************************************************************//* 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"{

#definedllexport __declspec(dllexport) jmp_buf Jmp_Buf;

int E;

#defineException 0x00000#definee Exception#definetry if(!(E=setjmp(Jmp_Buf)))#definelast_error() E#definecatch(val) else#definethrow(val) longjmp(Jmp_Buf,val)#definecheck(expersion) assert(expersion)#defineGetError() errno dllexport voidsig_usr(int);

dllexport char* getTime();

} #else#definedllexport __declspec(dllexport) jmp_buf Jmp_Buf;

int E;

#defineException 0x00000#definee Exception34#definetry if(!(E=setjmp(Jmp_Buf)))35#definelast_error() E36#definecatch(val) else#definethrow(val) longjmp(Jmp_Buf,val)#definecheck(expersion) assert(expersion)#defineGetError() errno dllexport voidsig_usr(int);

dllexport char* getTime(); #endif[2].[代码] File.h 跳至 [1] [2] [3]

#include #include #include #include #defineSIZE 128#include "CException.h"#defineexport __declspec(dllexport)//读取配置文件.intread_file(char* filename,char* key,char* value);//写配置文件.intwrite_file(char* filename,char* key,char* value);//释放文件.int release();//写入节.intwrite_section(char* filename,char* section);intread_section(char* filename);intgetAuthor(char* value);voidgetVersion(char* value);

[3].[代码] File.c 跳至 [1] [2] [3]

#include "File.h"#include intread_file(char* filename,char* key,char* value)

{

intflag=;

char buffer[SIZE];

FILE *file=fopen(filename,"r");

try {

if(file==NULL)

{

flag=;

throw(flag);

}

else {

while(fgets(buffer,SIZE,file)!=NULL)

{

inti=,j=,len=strlen(key);

while(buffer[i]!='\') {

if(buffer[i]=='$'&&buffer[i+len+]=='=')

{

j=i+len+;

while(buffer[j]!='\'&&buffer[j]!=';') {

inth=;

if(buffer[i+]==key[i])

{

//printf("%c",buffer[j]); value[j-i-len-]=buffer[j];

}

j++;

}

break;

}

elseif(buffer[i]=='/'&&buffer[i+]=='/'||buffer[i]==';')

{

break;

//comment }

i++;

}

}

}

}

catch(Exception)

{

flag=;

fclose(file);

printf("can't open file %s",filename);

exit();

}

fflush(file);

fclose(file);

return flag;

}

intwrite_file(char* filename,char* key,char* value)

{

intflag=;

FILE* file;

file=fopen(filename,"a");

try {

if(file==NULL)

{

flag=;

throw(flag);

}

fprintf(file,"$%s=%s\n",key,value);

}

catch(Exception)

{

printf("Can't write file %s",filename);

exit();

}

fflush(file);

fclose(file);

return flag;

}

intwrite_section(char* filename,char* section)

{

intflag=;

FILE* file=NULL;

try {

file=fopen(filename,"a");

if(file!=NULL)

{

fprintf(file,"[%s]\n",section);

}

else {

intflag=;

throw(flag);

}

}

catch(Exception)

{

printf("can't open file %s",filename);

exit();

}

fflush(file);

fclose(file);

return flag;

}int release()

{

intflag=;

return flag;

}intread_section(char* filename)

{

return ;

}intgetAuthor(char* value)

{

charauthor[]="武汉软件工程职业学院计算机应用系孟德军";

inti=;

for(i=;i

{

value[i]=author[i];

}

return ;

}voidgetVersion(char* value)

{

charversion[]="////";

inti=;

for(i=;i

{

value[i]=version[i];

}

}/**************************************************************************

void main()

{

char* str=NULL;

char author[];

char buffer[];

char buffer[];

char buffer[];

read_file("F:\\exercise\\C++!C\\sys.ini","password",buffer);

read_file("F:\\exercise\\C++!C\\sys.ini","username",buffer);

read_file("F:\\exercise\\C++!C\\sys.ini","driver",buffer);

printf("password=%s\n",buffer);

printf("\n");

printf("username=%s\n",buffer);

printf("\n");

printf("driver=%s\n",buffer);

getAuthor(author);

printf("\n");

printf("author=%s",author);

release();

}

分享好友

分享这个小栈给你的朋友们,一起进步吧。

凉城时光
创建时间:2019-12-04 10:57:57
朋友 我们一起聊运维
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 我没
    栈主

小栈成员

查看更多
  • unnamed personq
  • unnamed personq
  • bluetooth
  • amadan
戳我,来吐槽~