文件指針類型符:FILE 例如: FILE *fp;
5個標準文件
stdin(標準輸入【鍵盤】)、
stdout(標準輸出【顯示器】)、
stdaux(標準輔助輸入輸出【異步串行口】)
stdprn(標準打印機)
stderr(標準錯誤輸出【顯示器】)
兩個文件判斷函數
ferror() 判斷操作錯誤
feof() 判斷文件末尾
1、打開文件:
FILE * fopen(char * filename,char *mode);-------------------->FILE * fopen('"文件路徑","打開方式");
打開方式有:r----只讀,爲只讀打開一個字符文件
w----只寫 爲只寫打開一個字符文件,文件指針指向文件首部
a-----追加 打開一個字符文件,指向文件尾部,在已經存在的文件中追加數據
rb---只讀 爲只讀打開一個二進制文件
wb---只寫 爲只寫打開一個二進制文件
ab--追加 打開文件一向文件追加數據
2、關閉文件
fclose(FILE * file) -------------------------- fclose(要關閉的文件指針)
fcloseall() ------------關閉所有打開的文件
注意:exit()隸屬於stdlib.h庫
3、文件讀取和寫入。
int fgetc(FILE * filename) 讀寫一個字符
int fputc(int ch ,FILE * filename) 向磁盤文件寫入一個字符,執行成功,返回寫入的字符,否則返回EOF
char * fgets(char *str, int n,FILE *filename) 從filename指向的文件中讀取n-1個字符,把他送到str指向的字符數組
char * fputs(char *str,FILE * filename) 把緩衝區str中得字符串寫入到filename指定的文件中
fscanf(FILE *filename ,char *format,<variable-list>)
例如fscanf(fp,"%s%d%f",&a,&b,&c) 安%s,%d,%f的格式從fp指向的文件讀取數據分別送往a,b,c
fprintf(FILE *filename ,char *format,<variable-list>)
例如:fprintf(fp,"%s,%d%f",a,b,c),將變量 a,b,c內容以%s,%d,%f方式寫入fp指向的文件
4、文件定位
int fseek(FILE *filename long offset,int origin) 將文件指針移到到制定的爲止, origin基準位置,offset爲位移量,執行成功則返回0
origin位置可取一下三個值
SEEK_SET 0 文件開頭
SEEK_CUR 1 文件指針當前位置
SEEK_END 2 文件尾部
int ftell(FILE* filename); 返回指針在當前文件中相對於文件頭的偏移量,若調用出錯返回-1
int rewind(FILE *filename) 用於把指針移動到當前文件頭
5、文件隨機讀寫函數
int fread(void * ptr,int size,int count,FILE* filename)
int fwrite(void * ptr,int size,int count,FILE* filename)
ptr 指向緩衝區
count 爲數據項
size 每個數據項項長度爲size
filename 文件指針