国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C語言讀寫配置文件的方法

2020-05-23 14:17:52
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了C語言讀寫配置文件的方法,包括C語言讀寫ini配置文件所涉及的文件讀寫技巧,以及完整的源文件及頭文件實現方法,需要的朋友可以參考下

本文實例講述了C語言讀寫配置文件的方法。分享給大家供大家參考。具體如下:

CException.h如下:

 

 
  1. /************************************************************************/ 
  2. /* make0000@msn.com */ 
  3. /************************************************************************/ 
  4. /************************************************************************/ 
  5. #include "stdio.h"  
  6. #include "conio.h"  
  7. #include "signal.h"  
  8. #include "setjmp.h"  
  9. #include "assert.h"  
  10. #ifdef __cplusplus  
  11. #include "iostream"  
  12. #include "exception"  
  13. extern "C"{  
  14. #define dllexport __declspec(dllexport)  
  15. jmp_buf Jmp_Buf;  
  16. int E;  
  17. #define Exception 0x00000  
  18. #define e Exception  
  19. #define try if(!(E=setjmp(Jmp_Buf)))  
  20. #define last_error() E  
  21. #define catch(val) else  
  22. #define throw(val) longjmp(Jmp_Buf,val)  
  23. #define check(expersion) assert(expersion)  
  24. #define GetError() errno  
  25. dllexport void sig_usr(int);  
  26. dllexport char* getTime();  
  27. #else  
  28. #define dllexport __declspec(dllexport)  
  29. jmp_buf Jmp_Buf;  
  30. int E;  
  31. #define Exception 0x00000  
  32. #define e Exception  
  33. #define try if(!(E=setjmp(Jmp_Buf)))  
  34. #define last_error() E  
  35. #define catch(val) else  
  36. #define throw(val) longjmp(Jmp_Buf,val) 
  37. #define check(expersion) assert(expersion)  
  38. #define GetError() errno 
  39. dllexport void sig_usr(int);  
  40. dllexport char* getTime(); 
  41. #endif 

File.h如下:

 

 
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <string.h>  
  4. #include <windows.h>  
  5. #define SIZE 128  
  6. #include "CException.h"  
  7. #define export __declspec(dllexport)  
  8. //讀取配置文件.  
  9. int read_file(char* filename,char* key,char* value);  
  10. //寫配置文件.  
  11. int write_file(char* filename,char* key,char* value);  
  12. //釋放文件.  
  13. int release();  
  14. //寫入節.  
  15. int write_section(char* filename,char* section);  
  16. int read_section(char* filename);  
  17. int getAuthor(char* value);  
  18. void getVersion(char* value); 

File.c如下:

 

 
  1. #include "File.h"  
  2. #include <string.h>  
  3. int read_file(char* filename,char* key,char* value)  
  4. {  
  5. int flag=0;  
  6. char buffer[SIZE];  
  7. FILE *file=fopen(filename,"r");  
  8. try 
  9. {  
  10. if(file==NULL)  
  11. {  
  12. flag=1;  
  13. throw(flag);  
  14. }  
  15. else 
  16. {  
  17. while(fgets(buffer,SIZE,file)!=NULL)  
  18. {  
  19. int i=0,j=0,len=strlen(key);  
  20. while(buffer[i]!='/0')  
  21. {  
  22. if(buffer[i]==' 
  23. 希望本文所述對大家的C語言程序設計有所幫助。 
  24.  
  25. &&buffer[i+len+1]=='='
  26.  
  27.  
  28. {  
  29. j=i+len+2;  
  30. while(buffer[j]!='/0'&&buffer[j]!=';')  
  31. {  
  32. int h=0;  
  33. if(buffer[i+1]==key[i])  
  34. {  
  35. //printf("%c",buffer[j]);  
  36. value[j-i-len-2]=buffer[j];  
  37. }  
  38. j++;  
  39. }  
  40. break;  
  41. }  
  42. else if(buffer[i]=='/'&&buffer[i+1]=='/'||buffer[i]==';')  
  43. {  
  44. break;  
  45. //comment  
  46. }  
  47. i++;  
  48. }  
  49. }  
  50. }  
  51. }  
  52. catch(Exception)  
  53. {  
  54. flag=2;  
  55. fclose(file);  
  56. printf("can't open file %s",filename);  
  57. exit(1);  
  58. }  
  59. fflush(file);  
  60. fclose(file);  
  61. return flag;  
  62. }  
  63. int write_file(char* filename,char* key,char* value)  
  64. {  
  65. int flag=0;  
  66. FILE* file;  
  67. file=fopen(filename,"a");  
  68. try 
  69. {  
  70. if(file==NULL)  
  71. {  
  72. flag=1;  
  73. throw(flag);  
  74. }  
  75. fprintf(file,"$%s=%s/n",key,value);  
  76. }  
  77. catch(Exception)  
  78. {  
  79. printf("Can't write file %s",filename);  
  80. exit(1);  
  81. }  
  82. fflush(file);  
  83. fclose(file);  
  84. return flag;  
  85. }  
  86. int write_section(char* filename,char* section)  
  87. {  
  88. int flag=0;  
  89. FILE* file=NULL;  
  90. try 
  91. {  
  92. file=fopen(filename,"a");  
  93. if(file!=NULL)  
  94. {  
  95. fprintf(file,"[%s]/n",section);  
  96. }  
  97. else 
  98. {  
  99. int flag=1;  
  100. throw(flag);  
  101. }  
  102. }  
  103. catch(Exception)  
  104. {  
  105. printf("can't open file %s",filename);  
  106. exit(0);  
  107. }  
  108. fflush(file);  
  109. fclose(file);  
  110. return flag;  
  111. }  
  112. int release()  
  113. {  
  114. int flag=1;  
  115. return flag;  
  116. }  
  117. int read_section(char* filename)  
  118. {  
  119. return 0;  
  120. }  
  121. int getAuthor(char* value)  
  122. {  
  123. char author[128]="武漢軟件工程職業學院計算機應用系";  
  124. int i=0;  
  125. for(i=0;i<strlen(author);i++)  
  126. {  
  127. value[i]=author[i];  
  128. }  
  129. return 0;  
  130. }  
  131. void getVersion(char* value)  
  132. {  
  133. char version[128]="2009//05//01";  
  134. int i=0;  
  135. for(i=0;i<strlen(version);i++)  
  136. {  
  137. value[i]=version[i];  
  138. }  
  139. }  
  140. /**************************************************************************  
  141. void main()  
  142. {  
  143. char* str=NULL;  
  144. char author[120];  
  145. char buffer[128];  
  146. char buffer1[128];  
  147. char buffer2[128];  
  148. read_file("F://exercise//C++!C//sys.ini","password",buffer);  
  149. read_file("F://exercise//C++!C//sys.ini","username",buffer1);  
  150. read_file("F://exercise//C++!C//sys.ini","driver",buffer2);  
  151. printf("password=%s/n",buffer);  
  152. printf("/n");  
  153. printf("username=%s/n",buffer1);  
  154. printf("/n");  
  155. printf("driver=%s/n",buffer2);  
  156. getAuthor(author);  
  157. printf("/n");  
  158. printf("author=%s",author);  
  159. release();  

希望本文所述對大家的C語言程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万盛区| 高密市| 蚌埠市| 承德县| 中阳县| 广汉市| 会宁县| 四平市| 黄浦区| 青阳县| 宣武区| 荥经县| 翼城县| 桐柏县| 永善县| 渑池县| 五常市| 铜陵市| 策勒县| 宣汉县| 珠海市| 固始县| 通榆县| 读书| 衡阳市| 临安市| 星座| 怀远县| 渭南市| 长葛市| 泸定县| 自贡市| 梅河口市| 婺源县| 宜黄县| 安丘市| 茌平县| 交口县| 麻城市| 常德市| 密云县|