C語言配置檔案讀取以及修改

2021-09-28 15:23:14 字數 2781 閱讀 9232

#include "paramread.h"

#include "common.h"

/* 讀取字元型別的值

*/int getinikeystring(char *dst, const char *title, const char *key, const char *filename)

else

else

fclose(fp);

strcpy(dst, wtmp + 1);

return 0;}}

else}}

}fclose(fp);

return -1;}/*

讀取陣列型別的值

*/int getinikeyfloatarray(const char *title, const char *key, float *array, int arraysize, const char *filename)

else

else

else

p = strtok(sline, ",");}}

fclose(fp);

return 0;

}else}}

}fclose(fp);

return -1;}/*

讀取整數型別的值

*/long long getinikeyint(const char *title, const char *key, const char *filename)

/* 讀取浮點型的值

*/double getinikeyfloat(const char *title, const char *key, const char *filename)

配置檔案如下:

[site]

siteid=1

sitename=boer

#單位 秒 [1,5)

transmissioninterval=2

[gps]

#使用本檔案引數 0,必須使用本檔案的 ; 1,必須使用原始資料的 ; 2,靈活切換,預設使用原始資料中的,如果原始資料的資訊不可用,就用本檔案的

usefile=2

#裝置所在經度(至少精確到小數後六位)

longitude=112.994963

#裝置所在緯度(至少精確到小數後六位)

latitude=28.233651

#經緯度平滑值 0=固定經緯度,(0,1)=平滑值,1=不平滑

#smoothvalue=1

#0,使用本檔案的角度 ; 1,使用原始資料的角度。(未修正磁偏角)

usesystemazimuth=1

#系統方位角

systemazimuth=0

#使用時區 0,使用本檔案的時區; 1,使用本地獲取的時區

usetimezone=1

#使用的本檔案時區(當usetimezone=0時生效)

timezone=8

#0,不使用磁偏角;1,使用本檔案磁偏角;2,根據經緯度(精確到度)自動計算磁偏角

usemade=2

#使用的本檔案磁偏角(當usemade=1時生效)(偏西為負,偏東為正(-180,180))

magneticdeclination=-3.75300

[device]

#0表示平行形態,1表示五角星形態

antennashape=1

[angle]

#幅度估計距離的係數,越大則距離越大

miu=6.5

#天線間距

d2450=0.06

#初始相位,2450m

initphase2450=-0.9,-0.9,-0.9,-0.9,-0.9

#天線間距

d5800=0.025

#初始相位,5800m

initphase5800=-0.9,-0.9,-0.9,-0.9,-0.9

修改配置檔案內容**如下:

int update_gps(const char *filename,const char*key,const char*data)

file *fp2 = fopen("temp.ini","w+");

if(fp2<0)

char *file_buf = (char*)malloc(4096);

char check_buf[1024]=;

while(fgets(check_buf,1024,fp) != null)

fprintf(fp2,"%s",check_buf);

} fclose(fp);

fclose(fp2);

//memset(check_buf,0,1024);

//sprintf(check_buf,"rm -r %s", filename);

//system(check_buf);

memset(check_buf,0,1024);

sprintf(check_buf,"mv temp.ini %s", filename);

system(check_buf);

return 0;

}

用法如下:

int main()

結果如下:

longitude = 112.994963

longitude = 100.001111

C語言讀取配置檔案

配置檔案 a.txt 1 2 3 ip sadf ip 192.168.246.22 dns 218.85.157.99 讀取規則 1 以 開頭的為注釋,不讀取 2 空行也不讀取 3 兩邊可以有空格 這裡先講下要用到的知識點 1 斷言的使用 assert 巨集用法 注意 assert是巨集,而不是函...

C語言讀取及修改簡單配置檔案內容

執行環境 ubuntu14.04 此方式適合小的配置檔案,不適合大型檔案。假如有檔案內容為 ip 192.168.1.20 mask 255.255.255.0 dns 192.168.1.1 include include include include include define str ne...

C 讀取配置檔案

1 首先引入標頭檔案 include 2 獲取應用程式的當前路徑 char buf 1000 getcurrentdirectory 1000,buf 得到當前工作路徑3 獲取配置檔案的路徑 char path 1024 definesysconfig config.ini sprintf path...