通過程式實現檔案的讀取操作
為了方便函式的呼叫,.c檔案之間呼叫函式通常使用.**件進行宣告
,將需要用到的函式宣告在.**件中。
首先我們要讀取的檔案內容為
#這是我的的ip位址其中#號開頭的內容為注釋內容為無效行,不需要讀取,有效行格式為ip:127.0.0.1
#這是我的埠
port:8080
#這是使用者名稱
username:root
#這是密碼
password:root
aaa:bbbb
cccc:dddd
key(關鍵字):value(有效值)將要使用到的函式宣告在config.**件中,**如下
//防止標頭檔案重複包含
#pragma once
#include
#include
#include
struct configinfo
;//c++無法直接呼叫c的函式因此要寫如下宣告,使得編譯器知道下面的內容是c語言函式
#ifdef _cplusplus
extern
"c"#endif
#include
"configfile.h"
//判斷有效行
intvalidlines
(const
char
* buf)
return1;
//有效行返回1
//獲得檔案有效行數
intgetlines_configfile
(file *file)
;int lines =0;
while
(fgets
(buf,
1024
,file)
!=null
)fseek
(file,0,
seek_set);
//檔獲得有效行時,檔案指標在文字末尾,需要返回到檔案開頭
return lines;
}//載入配置檔案引數為(檔案路徑,返回的檔案內容,返回的有效行數)
void
loadfile_configfile
(const
char
* filepath,
char**
*filedata,
int* line)
int lines =
getlines_configfile
(file)
;//獲取有效行後,指標重定向到檔案開頭
char
** temp =
(char**
)malloc
(sizeof
(char*)
* lines)
;//開闢空間接收檔案內容
char buf[
1024]=
;//接收檔案一行的內容
int index =0;
//計數器
while
(fgets
(buf,
1024
,file)
!=null
)//判斷接收的行是否為空
* filedata = temp;
//返回有效內容
* line =lines;
//返回有效的行數
fclose
(file)
;//關閉檔案
}//解析配置檔案傳遞引數(有效的檔案內容,有效行數,要傳入的結構體)
void
parsefile_configfile
(char
**filedata,
int lines,
struct configinfo *
*info)
*info = myinfo;
//將整理好的結構體返回
for(
int i =
0; i < lines; i++
)//釋放空間}}
//獲得指定配置資訊傳遞引數(查詢值,結構體,有效行數)
char
*getinfo_configfile
(const
char
* key,
struct configinfo *info,
int line)
}return
null;}
//釋放記憶體
void
freeconfig
(struct configinfo * info)
//釋放結構體內存
free
(info)
; info =
null;}
}
#include
"configfile.h"
void
test
(char
*str)
void
main()
;while
(true)
test
(str);}
}
C語言基礎 14 檔案操作
calderon函式也可以動態分配記憶體 這個函式可以把分配的所有記憶體內容都設定成0 這個函式也需要包含 stdlib.h標頭檔案 這個函式需要兩個引數,第乙個引數表示希望分配的儲存區個數,第二個引數表示單個儲存區的大小 這個函式的返回值是分配好的第乙個儲存區的位址 這個函式也可能失敗,如果失敗則...
C 筆記七(檔案 異常)
1.基本概念 原由 程式執行時資料都是臨時資料,程式一旦執行結束便會被釋放,通過檔案可以將資料持久化。c 中檔案操作的標頭檔案為 fstream 檔案操作的三大類 class 其一,ofstream 寫操作 其二,ifstream 讀操作 其三,fstream 讀寫操作 2.文字檔案 寫檔案的步驟 ...
七 檔案處理
檔案操作 io操作 檔案操作和遠端網路都可以統稱為 io操作。文字檔案和二進位制檔案 文字檔案儲存的是普通字元,python是預設unicode碼,可以用記事本開啟,二進位制檔案是位元組儲存,無法用記事本開啟,用其他軟體開啟。建立檔案物件open f open r d a.txt r 這裡要注意,在...