1.fopen()
原型:FILE * fopen(const char* filename, const char* mode);
說明:
fopen 實現三個功能:爲使用而打開一個流;把一個文件和此流相互鏈接;給此流返回一個FILR指針。
parameter filename--指向要打開的文件名,
parameter mode--表示打開狀態的字符串。
"r"以只讀方式打開文件
"w"以只寫方式打開文件
"a"以追加方式打開文件
"r+"以讀/寫方式打開文件,如果無文件出錯的話
"w+"以讀/寫方式打開文件,如果無文件生成新文件的話
一個文件可以以文本模式或二進制模式打開,這兩種的區別是:
在文本模式中回車被當成一個字符'/n',而二進制模式認爲它是兩個字符 0x0D,0x0A;如果再文件中讀到0x1B,文本模式會認爲這是結束符,也就是二進制模式不會對文件進行處理,而文本文件方式會按照一定的方式對數據做相應的轉換。
系統默認以文本模式打開,可以修改全部變量_fmode的值來修改這個設置,例如 _fmode=O_TEXT;這就設置默認打開方式爲文本模式;而_fmode=O_BINARY;則設置默認打開方式是二進制方式。
在模式字符串中指定打開的模式,如"rb"表示以二進制模式打開只讀文件,"w+t"或"wt+"表示以文本模式打開讀/寫文件。
此函數返回一個FILE指針,所以申明一個FILE指針後不用初始化,而是用fopen()來返回一個指針並與一個特定的文件相連,如果失敗,返回NULL。
2.fclose()
原型:int fclose(FILE* fp);
說明:fclose()的功能就是關閉用fopen()打開的文件。程序編寫中,需要注意這兩者的對應關係,否則,會造成數據丟失的情況。
如果成功,返回0;失敗返回EOF。
3.fputc()
原型:int fputc(int c, FILE* stream);
說明:向流中寫一個字符。成功返回這個字符;失敗返回EOF。fputc會將參數c轉爲unsigned char 後傳入參數stream指定的文件。
4.fgetc()
原型:int fgetc(FILE* stream);
說明:成功返回這個字符;失敗返回EOF。
5.fseek()
原型:int fseek(FILE* stream, long offset, int whence);
說明:此函數一般用於二進制模式打開的文件中,功能是定位到流中指定的位置。
如果成功,返回0,參數offset是移動的字節數,whence是移動的基準,取值是:
符號常量值 基準位置
SEEK_SET0 文件開頭
SEEK_CUR1 當前讀寫的位置
SEEK_END2 文件尾部
6.fputs()
原型:int fputs(const char* s, FILE* stream);
7.fgets()
原型:char* fgets(char* s, int n, FILE* stream);
說明:從流中讀一行或指定個字符。從流中讀取n-1個字符,除非讀完一行,參數s是接受字符串。如果成功,返回s的指針,否則,返回NULL。
8.fprintf()
原型:int fprintf(FILE* stream, const char* format[, argument, ...]);
說明:按照格式輸入到流,其用法和printf()相同,不過不是寫到控制檯,而是寫到流。
9.fscanf()
原型:int fscanf(FILE* stream, const char* format[, address, ...]);
說明:從流中按格式讀取,其用法和scanf()相同,不過不是從控制檯讀取,而是從流讀取。
10.feof()
原型:int feof(FILE* stream);
說明:檢測是否已到文件尾,是返回真;否則,返回0。
11.ferror()
原型:int ferror(FILE* stream);
說明:返回流最近的錯誤代碼,可用clearerr()來清除。cleareer原型是void cleareer(FILE* stream);
12.rewind()
原型:void rewind(FILE* stream);
說明:把當前的讀寫位置回到文件開始。其實,本函數相當於fseek();
13.remove()
原型:int remove(const char* filename);
說明:刪除文件。參數就是刪除文件的文件名,成功返回0。
14.fread()
原型:size_t fread(void* ptr, size_t size, size_t n, FILE* stream);
說明:從流中讀指定個數的字符。
參數ptr是保存讀取的數據,
void* 的指針可用任何類型的指針來替換,如char*、int* 等等來替換;
size是每塊的字節數;
n是讀取的塊數。
如果成功,返回實際讀取的塊數(不是字節數),本函數一般用於二進制模式打開文件中。
15.fwrite()
原型:size_t fwrite(const void* ptr, size_t size, size_t n, FILE* stream);
說明:與fread對應,向流中寫指定的數據。
參數ptr是要寫入的數據指針,void*的指針可用任何類型的指針來替換,如char*、int*等等來替換;
size是每塊的字節數;
n是要寫的塊數。
如果成功,返回實際寫入的塊數(不是字節數),本函數一般用於二進制模式打開的文件中。
16.tmpfile()
原型:FILE* tmpfile(void);
說明:生成一個臨時文件。以"w+b"的模式打開,並返回這個臨時流的指針。如果失敗,返回NULL。在程序結束後,這個文件會被自動刪除。
17.tmpnam()
原型:char* tmpnam(char* s);
說明:
生成一個唯一的文件名,其實tmpfile()就調用了此函數,參數s用來保存得到的文件名,並返回這個指針。如果失敗,返回NULL。