文件的分類:
文本文件: 存儲的是ASCII碼值的二進制
二進制文件: 存儲的是數據的補碼
文件IO:
FILE *fopen(const char *path, const char *mode);
功能:打開或者創建文件
path:文件的路徑
mode:打開模式r 以只讀權限打開文件,如果該文件不存在則打開失敗r+ 在r的基礎上,增加寫權限w 以只寫權限打開文件,如果文件不存在則創建,如果文件存在則會清空w+ 在w的基礎上,增加讀權限a 以追加的形式打開文件,如果文件不存在則新建,如果文件存在則不清空,新寫入的數據會在文件的文件。a+ 在a的基礎上,增加讀權限注意:以上方式打開文件都是以文本文件形式來操作文件的,在它們的基礎加上b表示以二進制形式操作文件。rb wb wb+返回值:結構指針,不需要關心它的成員,只需要知道它是操作該文件的唯一憑證。二進制形式的讀寫:【人無法直接讀懂文件】
size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream);
功能:從內存中把數據寫入到文件中
ptr:要寫入的內存的首地址
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,失敗返回-1void 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,失敗返回-1int rename(const char *oldpath, const char *newpath);功能:重命名文件返回值:成功返回0,失敗返回-1main函數的參數:是為了獲取命令行的參數 argc 代表了命令行參數的總個數argv 代表了每個參數字符串的首地址