檔案操作(day15)

2022-04-03 02:42:37 字數 1906 閱讀 8973

呼叫函式可以使用被呼叫函式動態分配的

儲存區calloc函式也可以動態分配一組連續的

儲存區這個函式可以把所有動態分配的儲存區

內容設定成0

為了使用這個函式也需要包含stdlib.h標頭檔案

這個函式需要兩個引數,第乙個引數表示要

分配的儲存區個數,第二個引數表示單個

儲存區的大小

這個函式的返回值也是分配好的第乙個儲存區

的位址這個函式也可能失敗,如果失敗則返回null

realloc函式可以調整一段動態分配記憶體中

的儲存區個數

盡量少使用這個函式

所有檔案都採用二進位制的方式記錄數字

如果檔案裡的所有二進位制資料都來自於字元

則這種檔案叫文字檔案

文字檔案以外的檔案都叫做二進位制檔案

c語言裡提供了兩種操作檔案的方法,一種

方法只能操作文字檔案,另外一種方法

可以操作所有檔案

第一種操作檔案的方式叫文字方式,第二種

操作檔案的方式叫二進位制方式

檔案操作基本步驟

1.開啟檔案(fopen)

2.操作檔案(fread/fwrite)

3.關閉檔案(fclose)

fopen函式需要兩個引數

1.代表要開啟的檔案路徑

2.代表開啟檔案的方式(決定

程式裡可以對檔案做什麼操作)

開啟方式有如下選擇"r

"只能察看檔案內容不可以修改

只能從檔案頭開始察看

如果檔案不存在則開啟會失敗"r+

" 比"r"

多了修改功能"w

"只能修改檔案內容不能察看

只能從檔案頭開始修改

如果檔案不存在就建立檔案

如果檔案存在就刪除檔案裡的所有

內容"w+

" 比"w"

多了察看功能"a

"只能修改不能察看

只能在檔案末尾追加新內容

如果檔案不存在就建立檔案

如果檔案存在不會修改檔案的

原有內容"a+

" 比"a"

多了察看功能"b

"也是一種開啟方式

他可以和前面的任何一種開啟方式混合使用

如果程式裡採用二進位制方式操作檔案就

應該使用這個開啟方式

fopen函式返回的是乙個位址,應該記錄在

檔案指標裡。

程式裡只能用檔案指標代表開啟的檔案

fopen函式有可能失敗,如果失敗則返回值

是null

一旦完成對檔案的所有操作後必須使用fclose

函式關閉檔案

fclose函式需要檔案指標作為引數

fclose函式結束後檔案指標成為野指標,必須

恢復成空指標

檔案操作分兩種

1.把記憶體裡一組連續儲存區的內容拷貝到

檔案裡(寫檔案操作)

2.把檔案裡一組連續儲存區的內容拷貝到

記憶體裡(讀檔案操作)

fread函式可以採用二進位制方式對檔案進行讀

操作fwrite函式可以採用二進位制方式對檔案進行

寫操作這兩個函式都需要四個引數

1.記憶體裡第乙個儲存區的位址

2.單個儲存區的大小

3.希望操作的儲存區個數

4.檔案指標

它們的返回值表示實際操作的儲存區個數

以下兩個函式以文字方式操作檔案

fprintf函式可以把資料按照規定的格式記錄到

文字檔案裡

fprintf函式的第乙個引數是乙個檔案指標,

後面的引數就是printf函式的引數

fscanf函式可以從文字檔案裡獲得數字並記錄

到儲存區里

這個函式的第乙個引數是乙個檔案指標,後面的

引數就是scanf函式的引數

python學習歷程day15

學習內建函式 包括map,sort,repr,lambda,filter,遞迴,二分法查詢 1.map lst 1,4,7,2,5,8 def func el return el 2 func lst 或者m map lambda el el 2,lst 把後面的可迭代物件中的每乙個元素傳遞給fun...

Day15 模組的練習

匯入標準庫模組 time 時間 標準庫模組 time 時間 練習 exercise02 03 import time 1.當前時間戳 1970年1月1日到現在經過的秒數 print time.time 1574153197.3360288 2.時間元組 年,月,日,時,分,秒,星期,年的天,夏令時偏...

iOS底層學習 day 15

我是一名ios開發者,ios底層菜鳥的高階之路30天。void viewdidload super viewdidload 的本質 struct abc objc msgsendsuper2 abc,sel registername viewdidload 區域性變數分配在棧空間 棧空間分配,從高位...