學習筆記18 C語言 檔案

2021-10-14 11:08:45 字數 2355 閱讀 4812

二進位制檔案: 儲存的是資料的補碼

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

功能:開啟或者建立檔案

path:檔案的路徑

mode:開啟模式

r 以唯讀許可權開啟檔案,如果該檔案不存在則開啟失敗

r+ 在r的基礎上,增加寫許可權

w 以只寫許可權開啟檔案,如果檔案不存在則建立,如果檔案存在則會清空

w+ 在w的基礎上,增加讀許可權

a 以追加的形式開啟檔案,如果檔案不存在則新建,如果檔案存在則不清空,新寫入的資料會在檔案的檔案。

a+ 在a的基礎上,增加讀許可權

返回值:結構指標,不需要關心它的成員,只需要知道它是操作該檔案的唯一憑證。

二進位制形式的讀寫:【人無法直接讀懂檔案】

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

功能:從記憶體中把資料寫入到檔案中

size:一次寫入的位元組數

nmemb:寫入多少次

file*:檔案指標,fopen的返回值

返回值:成功寫入的次數

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

功能:從檔案中讀取資料到記憶體中

ptr:要讀取到記憶體的首位址

size:每次讀取多少個位元組

nmemb:讀取多少次

file*:檔案指標

返回值:成功讀取到的次數

文字形式的讀寫【人能直接看懂檔案】

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

功能:以文字形式寫入資料到檔案中

stream:要寫入的檔案指標

format:佔位符...

...:變數列表

返回值:

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

功能:以文字形式從檔案中讀取資料到記憶體中

stream:要寫入的檔案指標

format:佔位符...

返回值:成功讀取到的變數的個數

int fclose(file *fp);

功能:關閉檔案(因為有緩衝區的存在,想要立即寫入到檔案,關閉一下檔案)

檔案位置指標:

每個開啟的檔案都會有乙個檔案位置指標指向要讀寫的位置,它會隨著檔案的讀寫而移動,以r、r+、w、w+模式開啟檔案,

檔案位置指標會在檔案的開頭,以a\a+開啟,檔案位置指標會在檔案的末尾

int fseek(file *stream, long offset, int whence);

功能:設定檔案的位置指標

stream:要設定的檔案指標

offset:偏移值

whence:基礎位置

seek_set:檔案的開頭

seek_cur: 檔案指標的當前位置

seek_end: 檔案的末尾

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

void rewind(file *stream);

功能:把檔案位置指標設定到檔案開頭

long ftell(file *stream);

功能:獲取檔案位置指標當前所在的位置

返回:所在第幾個位元組

int feof(file *stream);

功能:檢查檔案位置指標是否已經到達末尾

返回值:如果到達末尾返回非零值

char *fgets(char *s, int size, file *stream);

功能:從檔案中讀取一行字串

int fputs(const char *s, file *stream);

功能:寫入乙個字串到檔案中,會自動新增\n在末尾

int fgetc(file *stream);

功能:從檔案中讀取乙個字元

int fputc(int c, file *stream);

功能:寫入乙個字元到檔案中

int remove(const char *pathname);

功能:刪除乙個檔案

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

int rename(const char *oldpath, const char *newpath);

功能:重新命名檔案

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

main函式的引數:

是為了獲取命令列的引數

argc 代表了命令列引數的總個數

ar** 代表了每個引數字串的首位址

C C 學習 18 C語言雙向鍊錶

說明 陣列提供了連續記憶體空間的訪問和使用,而鍊錶是對記憶體零碎空間的有效組織和使用。鍊錶又分為單向鍊錶和雙向鍊錶,單向鍊錶僅提供了鍊錶的單方向訪問,相比之下,雙向鍊錶則顯得十分方便。一.單向鍊錶的節點 1 typedef struct node 2 node 二.雙向鍊錶的建立 頭插法和尾插法只看...

18 C語言 字串

在 c 語言中,字串實際上是使用 null 字元 0 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面的宣告和初始化建立了乙個 hello 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 hello 的字元數多乙個。char greeting 6 依據...

18 c 排序心得

注意開始時不合法判斷if i j return 三個while迴圈void quicksort vector int data,int left,int right data i temp print data quicksort data,left,i 1 quicksort data,i 1,r...