20161216C語言基礎19 檔案處理函式

2021-07-25 10:42:48 字數 1777 閱讀 7797

r:以唯讀開啟檔案,如果檔案不存在,則返回空指標,開啟失敗。

w: 以只寫開啟,沒有檔案就新建檔案,有檔案就會清空檔案,然後寫入。

a:以追加模式開啟,沒有檔案也會新建,但不會清空檔案,在檔案最末尾處新增。

在三種開啟模式之上,新新增了一些組合,讓我們更快更好的操作檔案

+:任何一種模式後加上+就變成了全新的更新模式,r+,w+,a+。任何一種模式加+就變成可讀可寫了。x:如果當前檔案已經被其他檔案開啟,就打不開了,如果自己以獨佔方式開啟,其他檔案就打不開這個檔案了。

如果成功開啟,就會返回乙個file結構體的指標。對file的所有操作,都不會在檔案上,而是在記憶體緩衝區。

fopen只能將乙個檔案加入到緩衝區中,不能拿來處理檔案。

getc和putc

字串的結束符為0x00,檔案的結束符為eof。

vs編譯的時候檔案應該存放在編譯目錄下才能以唯讀方式開啟,否則開啟出錯返回空指標,然後用getc(fp)的時候就會出嚴重錯誤!

若以w方式開啟,檔案就會被清空。

這個程式,執行的時候操作的時候是操作的緩衝區(fp),當程式關閉的時候,他會自動關閉緩衝區,他就會將緩衝區的內容更新到磁碟檔案中,要正常關閉的話,應該使用fclose(fp);//。

使用r+開啟後,有乙個叫游標的東西,游標預設在開始位置,寫入資料的話就會覆蓋檔案本身的資料,如果對原來的資料進行一次讀取(getc),游標就會往後面移動,但不可能每次開啟檔案都把之前的資料讀取一遍,有其他方式解決:

1:以a+的模式開啟,寫入游標就會預設在檔案最後面的位置,讀取游標預設在檔案開始的地方,但如果讀取的話還是從最開始讀取,完美解決了這個問題。這是比較常用的開啟檔案的方式(a+)。

當使用讀取寫入操作的時候,游標都會移動。

ftell:

fseek:設定游標位置。

seek_set:檔案最開始位置

seek_cur:當前游標位置

seek_end:檔案末尾位置

ftell和fseek,游標所在的位置是通過long的方式儲存在檔案當中,可以存2億多個游標,可能不夠用,當檔案夠大的時候,ftell和fseek就只能處理2億多個游標以內的游標

fgetspos和fsetpos:不再使用long來儲存游標,使用乙個全新的結構來儲存游標,多用於處理大資料!

windows下,每個換行占用兩個游標(fseek是以二進位制來統計,getc是以字元來統計),\r\n,但讀取的時候不會讀取\r,

這段程式裡,count和last的值就可能不一樣。fseek(fp,last,seek_cur);//裡面最後乙個引數是相對這個位置移動last個游標!

C 程式語言基礎19

reflection,中文翻譯為反射。這是.net中獲取執行時型別資訊的方式,net的應用程式由幾個部分 程式集 assembly 模組 module 型別 class 組成,而反射提供一種程式設計的方式,讓程式設計師可以在程式執行期獲得這幾個組成部分的相關資訊,例如 assembly類可以獲得正在...

c語言程式設計(19)

字串 字元陣列 1 使用字串初始化字元陣列 char ch hello world scanf s ch printf s ch 2 字串處理函式 gets ch 指標變數指向字串 char str hello 使用字串常量對字元指標進行初始化 str str 2 str world 等價於char...

19級c語言錯題

1.要定義乙個f函式,其功能為求100以內,能同時被2和3整除的數的和,則該函式的首部應定義為 int f 2.以下敘述正確的是 b a.在c程式中無論是整數還是實數,只要在允許的範圍內都能準確無誤的表示 有正確表達範圍 b.c程式中語句 int a 3.5 是合法的 c.在c程式中要呼叫的函式必須...