C語言學習之檔案操作

2021-09-28 17:58:04 字數 1945 閱讀 1756

開啟檔案(fopen()):需要判斷是否成功開啟,開啟失敗返回null

操作檔案:

讀檔案(fread())

寫檔案 (fwrite())

關閉檔案( fclose):需要判斷檔案指標是否為空

file *fopen(const char *pathname, const char *mode);

file :返回檔案指標,若開啟失敗,返回null

pathname: 檔案路徑

mode: 開啟模式

字串含義r

唯讀,從檔案頭開始讀,檔案不存在則開啟失敗返回null

r+比r多了修改檔案的功能

w只寫,從檔案頭開始寫,檔案不存在則建立,存在則清空

w+比w多了讀功能

a只能在檔案尾追加內容,檔案不存在則建立檔案,檔案存在則在其尾追加修改

a+比a多了讀許可權

b和上面的任何一種混合使用,如wb,ab等,表示採用二進位制方式操作檔案

size_t fread(void *ptr, size_t size, size_t nmemb, file *stream);

ptr:接收讀來的資料

size:每個條目的大小

nmemb:讀多少個條目

stream:檔案指標

返回值:成功讀入的條目個數

size_t fwrite(const void *ptr, size_t size, size_t nmemb, file *stream);

ptr:待寫出的資料

size:每個條目的大小

nmemb:寫多少個條目

stream:檔案指標

返回值:成功寫出的條目個數

注:fread和fwrite需要以二進位制方式開啟檔案

int fclose(file *stream);

返回值:成功返回0,失敗返回eof,即-1

如果stream為null,返回eof

int fprintf(file *stream, const char *format, …);

第乙個引數為檔案指標,後面的引數和printf();一樣,可以這樣認為:printf 是把各種型別變數(int用%d,字串用%s, float用%f等)變成字元統一輸出到螢幕上,而fprintf則是可以指定流作為輸出點。比如fprintf(fp, 「%d」, a);把整型數a輸出到檔案指標fp所指檔案,fprintf(stdout, 「%d」, a)則是把整型數a輸出到stdout(standard output標準輸出)上,在我們的計算機中,是把螢幕設定為標準輸出裝置的,所以fprintf(fp, 「%d」, a)等價於printf("%d",a);。

返回值為正確輸出條目的個數。

int fscanf(file *stream, const char *format, …);

與fprint和printf的關係類似,fscanf是scanf的乙個通用,scanf是fscanf的乙個特例,當stream為stdin的時候,兩個函式等價。scanf和fscanf是把stream(scanf沒有stream這個引數,預設為鍵盤,鍵盤就是stdin)流的資料讀入,計算機認為讀進來的是字元編碼格式:讀進來97,會被處理成』a』,讀進來48,會被認為是字元』0』。

我認為sfanf("%d",a);的大致過程是這樣的, 把流中的二進位制序列,8bit一組,一組一組看,如果在範圍48~57(數字字元的ascii碼)之間,則是合法的,知道遇到乙個非法字元,比如合法的字元挨個為 『1』 『2』 『3』, 下乙個不合法字元為』\0』(\0的ascii碼是全0),也就是說,計算機應該拼湊乙個數字123存入a,直接存入肯定是不行的,應該把1*100+2*10+3,存入a中。作為對比,當我以二進位制讀這個流會怎麼樣呢?如果用fread(p, 4, 1, stream)來讀取這個流,其中p是int *指標,4代表int的大小,1代表要讀乙個int,那麼,計算機會從stream中拿4*1個位元組出來,存到p表示的位址中,即*p=0x00333231而不是一百二十三,也不是一千二百三

c語言學習筆記之檔案操作

1 static 和extern使用 1 修飾區域性變數 static修飾區域性變數特點 延長區域性變數的生命週期 extern不能修飾區域性變數 2 修飾全域性變數 static修飾全域性變數 是乙個內部變數,只能在本檔案使用。extern修飾全域性變數 是乙個外部變數,可以在本檔案和其他檔案使用...

C 語言學習筆記 檔案操作

入門級學習c 語言,避免不了想讓自己的程式能和外界打交道,哪怕是乙個 txt 的記事本,那麼怎麼實現檔案的操作,這裡只是舉個小例子,還有待開發和修正哈 如果是只是為了研究這個操作怎麼寫,就建立乙個 c 的命令列工程就行了,我這裡是為了做上位機,整了個windows的窗體設計,隨便畫了個介面,顯示一下...

C語言學習 檔案

文 件 檔案的概念 所謂 檔案 是指一組相關資料的有序集合。這個資料集有乙個名稱,即檔名。檔案通常是駐留在外部介質 如磁碟 上的,在使用時才調入記憶體中來。檔案緩衝區 的概念 1 檔案緩衝區是記憶體中的一塊區域,用於進行檔案讀寫操作時資料的暫存。在計算機系統中,資料是從記憶體中的程式資料區到檔案緩衝...