之前用的不多,見到時有點懵,記錄以備查閱
fopen打開文件
返回FILE*,如果該指針爲NULL,表未打開文件
比較簡單,兩個參數,第一個爲文件,第二個爲模式
其中“r”只讀;“w”寫入;"a"追加寫入
“w+b”b區分二進制文件(windows下);linux不區分
寫入有int類型,也是二進制的範圍。單純char的才用w+.
w是以文本方式打開文件,wb是二進制方式打開文件,以文本方式打開文件時,fwrite函數每碰到一個0x0A時,
就在它的前面加入0x0D.其它內容不做添加操作
fseek
頭文件stdio.h
重定位流上的文件指針
原型:
int fseek(FILE *stream, long offset, int fromwhere);
參數介紹: stream爲文件指針。從fromwhere開始,偏移offset個字節的位置。如果執行失敗(比如offset超過文件自身大小),則不改變stream指向的位置。
返回值: 成功,返回0,否則返回其他值。
fread與fwrite 寫入與讀取
調用:
size_t fread( void * buffer,size_t size,size_t n, FILE * fp);
fp文件指針,讀n個字段,每個size字節,放入buffer中;
返回實際讀取的字節數
size_t fwrite( void * buffer,size_t size,size_t n,
FILE * fp);
參數同上
rewind
原型:void rewind(FILE *fp)
作用:使文件fp的位置指針指向文件開始。
ftell(fp)
獲得當前的位置指針
fclose關閉文件
此外,還有
int fgetc(fp);
int fputc(int c, fp);
fputc 會將參數c 轉爲unsigned char 後寫入參數stream 指定的文件中.
讀取寫入字符
例題:
#include
main()
{
FILE *fp;
int i,a[ 6]={1,2,3,4,5,6},k;
fp = fopen ("data.dat", "w+b");
for (i=0;i<6;i+ +)
{
fseek(fp,0L,0);
fwrite(&a[5—i],sizeof(int),1,fp);
}//反覆在第一行覆蓋寫入,最終寫入1
rewind(fp);//文件指針重置指向開頭
fread(&k,sizeof(int),1,fp);//讀取第一行k爲1
fclose(fp);
printf("%d",k);
}
同時應注意讀取寫入時內容的大小,類型
文件指針
是文件操作系統數據結構內部的一種數據指針,它用於標註文件當前讀寫位置,C語言中,文件指針以字節爲單位,
C語言的文件指針採用long型值;
執行文件讀/寫操作後,文件指針自動向後移動,指到新的待讀/寫位置。