開啟檔案(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 檔案緩衝區是記憶體中的一塊區域,用於進行檔案讀寫操作時資料的暫存。在計算機系統中,資料是從記憶體中的程式資料區到檔案緩衝...