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...