1.C 文件讀寫:html
一個文件,不管它是文本文件仍是二進制文件,都是表明了一系列的字節。C 語言不只提供了訪問頂層的函數,也提供了底層(OS)調用來處理存儲設備上的文件。數組
a.打開文件:安全
FILE *fopen( const char * filename, const char * mode );ide
filemame是文件名,mode是指模式---好比說 "r" 指打開一個已有的文本文件,容許讀取文件。詳情網上隨便都有。函數
sub: 若是fopen顯示不安全,就聲明一個 #define _CRT_SECURE_NO_WARNINGSspa
b.關閉文件:指針
int fclose( FILE *fp );code
若是成功關閉文件,fclose( ) 函數返回零,若是關閉文件時發生錯誤,函數返回 EOF。這個函數實際上,會清空緩衝區中的數據,關閉文件,並釋放用於該文件的全部內存。EOF 是一個定義在頭文件 stdio.h 中的常量。orm
c.寫入文件:htm
int fputc( int c, FILE *fp );
函數 fputc() 把參數 c 的字符值寫入到 fp 所指向的輸出流中。若是寫入成功,它會返回寫入的字符,若是發生錯誤,則會返回 EOF。
int fputs( const char *s, FILE *fp );
函數 fputs() 把字符串 s 寫入到 fp 所指向的輸出流中。若是寫入成功,它會返回一個非負值,若是發生錯誤,則會返回 EOF。您也能夠使用:
int fprintf(FILE *fp,const char *format, ...)
函數來寫把一個字符串寫入到文件中。
d.讀取文件:
下面是從文件讀取單個字符的最簡單的函數
int fgetc( FILE * fp );
若是是字符串:
char *fgets( char *buf, int n, FILE *fp );
函數 fgets() 從 fp 所指向的輸入流中讀取 n - 1 個字符。它會把讀取的字符串複製到緩衝區 buf,並在最後追加一個 null 字符來終止字符串。
若是這個函數在讀取最後一個字符以前就遇到一個換行符 '\n' 或文件的末尾 EOF,則只會返回讀取到的字符,包括換行符。
e. 二進制 I/O 函數:
下面兩個函數用於二進制輸入和輸出:
這兩個函數都是用於存儲塊的讀寫 - 一般是數組或結構體。
f.在指定位置開始讀取:
fseek 能夠移動文件指針到指定位置讀,或插入寫
具體:
int fseek(FILE *stream, long offset, int whence);
fseek 設置當前讀寫點到 offset 處, whence 能夠是 SEEK_SET,SEEK_CUR,SEEK_END 這些值決定是從文件頭、當前點和文件尾計算偏移量 offset。
你能夠定義一個文件指針 FILE *fp,當你打開一個文件時,文件指針指向開頭,你要指到多少個字節,只要控制偏移量就好,例如, 相對當前位置日後移動一個字節:fseek(fp,1,SEEK_CUR); 中間的值就是偏移量。 若是你要往前移動一個字節,直接改成負值就能夠:
fseek(fp,-1,SEEK_CUR);
注意: 只有用 r+ 模式打開文件才能插入內容,w 或 w+ 模式都會清空掉原來文件的內容再來寫,a 或 a+ 模式即總會在文件最尾添加內容,哪怕用 fseek() 移動了文件指針位置。