在程式設計中,我們常常會遇到一些配置檔案或初始化檔案。
這些檔案通常字尾名為.ini或者.conf。能夠直接用記事本開啟。裡面會儲存一些程式引數,在程式中直接讀取使用。比如,計算機與server通訊。server的ip位址,段口號能夠儲存於ini檔案裡。這樣假設我想換另外一台server時。直接將ini檔案裡的ip位址改變就可以。程式原始碼不須要做不論什麼改動。
本文將分享一段經常使用**,用於讀取配置檔案裡的資訊。
1. 首先用記事本建立乙個config.ini檔案(檔名稱能夠隨便取)。並如果該檔案是我們要讀取的配置檔案。檔案內容例如以下:
information1: 1234567890如果我們讀取的初始化檔案每一行都是 《屬性名稱》: 《屬性值》 的格式。information2: this is test information
information3: `~!@#$%^&*()_+{}-\|:"/.,
<>
在上述樣例中,檔案共同擁有三行,分別代表三個屬性的資訊。
2. 然後就是我們的**檔案了,例如以下(將下面**存在readfile.cpp中):
#include #include當中,struct data是用於儲存要讀取的資訊的結構體,readfile函式也就是實現我們讀取功能的函式,當中的值均存在struct data中。最後我們寫了乙個簡單的main函式用來測試結果。須要注意的是,在struct data中,我們設定了char陣列長度,最大不超過128。因此假設要讀取的資訊超過128位元組可能會出錯。假設有須要讀取更長的話能夠將max_len設定為乙個更大的值。const size_t max_len = 128
;typedef
struct
data;
void readfile(data *d);
file *configfile = fopen(filename, "r"
); memset(d,
0,sizeof
(data));
while(null != fgets(linebuf, sizeof
(linebuf), configfile))
char *pos = strchr(linebuf,':'
);
if(null !=pos)
strcpy(d->firstline, pos);
}else
if(0 == strcmp(linebuf, "
information2"))
strcpy(d->secondline, pos);
}else
if(0 == strcmp(linebuf, "
information3"))
strcpy(d->thirdline, pos);
}else}}
fclose(configfile);
configfile = null;
return;}
int main(int argc, char *argv)
3. 最後就是我們的除錯結果了,在命令列中執行例如以下命令
$ g++ -o test.out readfile.cpp然後就是執行結果:$ ./test.out
d->firstline is "1234567890"這樣的讀取檔案的**應該很經常使用。要掌握。d->secondline is "this is test information"
d->thirdline is "`!@#$%^&*()_+{}-\|:"/.,
<>"
mysql 初始化配置檔案 MySQL 初始化配置
1 方式 原始碼安裝 編譯過程中設定初始化引數 配置檔案 資料庫啟動之前,設定配置檔案引數 etc my.cnf 啟動指令碼命令列 mysqld safe skip grant tables skip networking 說明 my.cnf port 3306 mysqld safe port 3...
MySQL 初始化讀取配置檔案摘要
摘自 mysql技術內幕 innodb儲存引擎 在資料庫例項啟動時,會在以下位置讀取配置檔案 etc my.cnf etc mysql my.cnf usr local mysql etc my.cnf mycnf 讀取順序 由 前 到後 依次讀取 如存在多個配置檔案,以最後讀取的配置檔案為準。my...
Ubuntu配置檔案系統環境初始化
ubuntu配置檔案系統初始化 1.etc timezone 時區 2.etc inetd.conf 超級程序 ubuntu配置檔案檔案系統 1.etc fstab 開機時掛載的檔案系統 2.etc mtab 當前掛載的檔案系統 ubuntu配置檔案使用者系統 1.etc passwd 使用者資訊 ...