所謂「文件」通常指存儲在外部介質上數據的集合。根據數據的組織形式,可分爲ASCII文件和二進制文件。ASCII文件,又稱爲文本文件,它的每個字節存放一個ASCII代碼,表明一個字符。二進制文件是把內存中的數據按其在內存中的存儲形式原樣輸出到磁盤上存取。函數
1、文件的打開與關閉指針
ANSI C規定了標準輸入輸出函數庫,用fopen()函數來實現打開文件。fopen函數的調用方式一般爲:內存
FILE * fp;字符串
fp = fopen(文件名,使用文件方式);get
文件使用方式 | 含義 |
「r」(只讀) | 爲輸入打開一個文本文件 |
「w」(只寫) | 爲輸出打開一個文本文件 |
「a」(追加) | 向文本文件尾增長數據 |
「rb」(只讀) | 爲輸入打開一個二進制文件 |
「wb」(只寫) | 爲輸出打開一個二進制文件 |
「ab」(追加) | 向二進制文件尾增長數據 |
「r+」(讀寫) | 爲讀/寫打開一個文本文件 |
「w+」(讀寫) | 爲讀/寫創建一個新的文本文件 |
「a+」(讀寫) | 爲讀/寫打開一個文本文件 |
「rb+」(讀寫) | 爲讀/寫打開一個二進制文件 |
「wb+」(讀寫) | 爲讀/寫創建一個新的二進制文件 |
「ab+」(讀寫) | 爲讀/寫打開一個二進制文件 |
用fclose函數關閉文件。fclose函數調用的通常形式爲:it
fclose(文件指針);table
2、文件的讀寫操做二進制
fputc函數把一個字符寫到磁盤文件上去。其調用形式爲:fputc(ch,fp);float
fgetc函數從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的,其調用形式爲:ch=fgetc(fp);error
fread和fwrite用來讀寫一個數據塊,其通常調用形式爲:
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
其中:
buffer:是一個指針。對fread來講,它是讀入數據的存放地址;對fwrite來講,它是要輸出數據的地址。
size:要讀寫的字節數。
count:要進行讀寫多少個size字節的數據項。
fp:文件型指針。
格式化讀寫:
fprintf(文件指針,格式字符串,輸出表列);
fscanf(文件指針,格式字符串,輸出表列);
fgets的做用是從指定文件讀入一個字符串。
fgets(str,n,fp);
fputs函數的做用向指定的文件輸出一個字符串。
fputs(str,fp);
3、文件的定位
rewind函數的做用是使位置指針從新返回文件的開頭。
rewind(fp);
fseek函數能夠實現改變文件的位置指針。
fseek(文件指針,位移量,起始點);
起始點 | 名 字 | 用數字表明 |
文件開始 | SEEK_SET | 0 |
文件當前位置 | SEEK_CUR | 1 |
文件末尾 | SEEK_END | 2 |
「位移量」是指以起始點爲基點,向前移動的字節數。ANSI C要求位移量是long型數據。
ftell函數的做用是獲得流式文件中的當前位置,用相對於文件開頭的位移量來表示。
ftell(fp);
4、文件的狀態
feof(fp); //若到文件末尾,函數值爲「真」(非0)。
ferror(fp); //若對文件操做出錯,函數值爲「真」(非0)。
clearerr(fp); //使ferror和feof函數值置零。