C語言檔案管理

2021-08-17 13:56:54 字數 1721 閱讀 6327

c語言檔案管理:

1、 哪些可以放在標頭檔案中,哪些不可以放在標頭檔案中

a) 函式宣告可以放在標頭檔案中,函式定義(函式體)不可以放在標頭檔案中

例如:int find();

b) 全域性變數宣告(extern)可以放在標頭檔案中,函式定義(函式體)不可以放在標頭檔案中

例如:extern struct sstud g_stud[100];

c) 常量宣告(定義)可以放在標頭檔案中

例如:#define count sizeof(g_stud[100])/sizeof(g_stud[0])

d) 結構體宣告(定義)可以放在標頭檔案中

例如:struct sstud

intnnumb;

charsname[20];

2、 c語言檔案操作

a) 檔案的目的是儲存程序中的資料,下次啟動程序時還要使用

b) 學習操作,主要學習4大主要函式:

①  、開啟檔案函式:fopen

②  、關閉檔案函式:fclose、

③  、讀檔案函式:fwrite

④  、寫檔案函式:fwrite

⑤  、其他fputc,fputc,fprintf,rewind等等函式可以次要了解,標頭檔案都是stdio.h

3、 fopen函式:建立乙個file*指標,連線到檔案上

函式原型:file * fopen(const char *path , const char *mode);

引數:filename:指定絕對路徑或者相對路徑的檔名

mode:分別指定

「r」:當檔案存在返回有效的檔案指標,當檔案不存在返回空指標

「w」:如果檔案不存在,建立檔案,如果檔案存在,清空該檔案並重寫內容,失敗的原因有:①檔案的路徑有問題②檔案唯讀③檔案被占用④windows磁碟安全限制寫入

「a」:如果檔案不存在,建立檔案,如果檔案存在,不清空原有內容,在原有內容後面

「w」和」a」都會返回空指標。

返回值:file*檔案指標型別,可以認為是駕駛員的手柄,把檔案操作比作對汽車的駕駛

a)不能帶入空指標

5、fwrite和fread函式

a)fwrite:呼叫fwrite必須是使用「w」或者「a」模式開啟

memcpy是將一段緩衝區的內容複製到另外一段緩衝區上

fwrite是將一段緩衝區的內容複製到磁碟檔案上

fread是將磁碟上的內容讀取到一段緩衝區上

6、  b)擴充套件模式:

t:預設時text模式,不推薦使用

c)其他讀寫模式:

「r+」:可讀可寫,主要特徵和失敗原因同r模式

「w+」:可讀可寫,主要特徵和失敗原因同w模式

「a+」:可讀可寫,主要特徵和失敗原因同a模式

7、其他的f族函式:

a)getc :getc等價於fread(&c,1,sizeof(char),fp)

b)putc(fputc):等價於fwrite(&c,1,sizeof(char),fp)

c) fputs:等價於fwrite(s,strlen(s),fp)

d) fgets: 用fwrite()不容易實現

8、檔案定址函式

a)ftell:告訴當前檔案指標距離頭部的位置(位元組)

b)fseek:將檔案指標放置到距離原點的某個距離上

三種原點:檔案頭,檔案尾,當前位置

附錄:如何查詢乙個檔案是否存在?

fopen(…,」r」)返回值是null代表不存在

C語言基礎(檔案管理)

乙個檔案,無論它是文字檔案還是二進位制檔案,都是代表了一系列的位元組。c 語言不僅提供了訪問頂層的函式,也提供了底層 os 呼叫來處理儲存裝置上的檔案 可以使用fopen 函式來建立乙個新的檔案或者開啟乙個已有的檔案,這個呼叫會初始化型別file的乙個物件,型別file包含了所有用來控制流的必要的資...

C語言檔案實現裝置管理

include include include include define n 10000 定義實驗器材結構體 struct equipment 宣告實驗器材陣列及實驗器材數量 struct equipment equipment 1000 int num 0 通過購買時間返回陣列下標 int e...

基於檔案管理的學生資訊管理系統(C語言 C )

include i o函式 include 其它說明 include 字串函式 define len 15 學號和姓名最大字元數,實際請更改 define n 50 最大學生人數,實際請更改 struct student stud n int k 1,n 0,m 0 n代表當前記錄的學生人數 voi...