二進位制檔案: 儲存的是資料的補碼
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...