1.fseek
相關函式:rewind, ftell, fgetpos, fsetpos, lseek
標頭檔案:#include
定義函式:int fseek(file * stream, long offset, int whence);
函式說明:
fseek()用來移動檔案流的讀寫位置
1、引數stream 為已開啟的檔案指標
2、引數offset 為根據引數whence 來移動讀寫位置的位移數。引數 whence 為下列其中一種:
seek_set 從句檔案開頭offset 位移量為新的讀寫位置. seek_cur 以目前的讀寫位置往後增加offset 個位移量.
seek_end 將讀寫位置指向檔案尾後再增加offset 個位移量. 當whence 值為seek_cur 或
seek_end 時, 引數offset 允許負值的出現.
下列是較特別的使用方式:
1) 欲將讀寫位置移動到檔案開頭時:fseek(file *stream, 0, seek_set);
2) 欲將讀寫位置移動到檔案結尾時:fseek(file *stream, 0, 0seek_end);
返回值:當呼叫成功時返回0, 若有錯誤則返回-1, errno 會存放錯誤程式碼.
附加說明:fseek()不像lseek()會返回讀寫位置, 因此必須使用ftell()來去的目前的讀寫位置
範例:
#include main()
2.ftell
標頭檔案:#include
ftell() 函式用來獲取檔案讀寫指標的當前位置。
原型為:
long ftell(file * stream);
引數stream 為已開啟的檔案指標。
返回值:成功則返回當前的讀寫位置,失敗返回 -1。
對於二進位制檔案則返回從檔案開頭到結尾的位元組數。
對於文字檔案,返回的數值可能沒有實際意義,但仍然可以用來儲存當前的讀寫位置,供 fseek() 函式使用
使用fseek函式後再呼叫函式ftell()就能非常容易的確定檔案的當前位置
ftell() 經常和 fseek() 一起使用。利用 ftell() 可以很方便的獲取乙個檔案的長: file *fp = fopen("demo.txt","rb");
fseek(fp, 0l, seek_end);
len =ftell(fp)+1;首先將檔案的位置指標移動到檔案的末尾,然後呼叫函式 ftell() 獲取當前位置相對於檔案首的位移,該位移值等於檔案所含位元組數。
例項:在讀取檔案中的字元時,不斷的讀取檔案指標的讀寫位置。
#include#includevoid main(void)
else //輸出資訊
}
3.fread
標頭檔案:#include
fread()函式用於從檔案流中讀取資料,其原型為:
size_t fread(void *buffer, size_t size, size_t count, file * stream);
引數:buffer為接收資料的位址,size為乙個單元的大小,count為單元個數,stream為檔案流。
fread()函式每次從stream中最多讀取count個單元,每個單元大小為size個位元組,將讀取到的資料放到buffer;檔案流的位置指標後移 size * count 位元組。
返回值:返回實際讀取的單元個數。如果小於count,則可能檔案結束或讀取出錯;可以用ferror()檢測是否讀取出錯,用feof()函式檢測是否達到檔案結尾。如果size或count為0,則返回0。
與fread()相對應的函式為fwrite(),fread() 和fwrite() 一般用於二進位制檔案的輸入輸出,ascii檔案不考慮。
例項:建立乙個檔案並寫入一些資料,然後讀取出來。
#include void main( void )
else
if( (stream = fopen( "fread.out", "r+t" )) != null ) // 檔案讀取
else
}
C C 幾個記憶體處理函式
1 memcpy void memcpy void destination,const void source,size t num 複製記憶體塊 從source指向的位置直接複製num個位元組的值到destination指向的記憶體塊。對於這個函式,source和destination指向的物件的...
幾個檔案操作函式
1.open 函式 功能描述 用於開啟或建立檔案,在開啟或建立檔案時可以指定檔案的屬性及使用者的許可權等各種引數。所需標頭檔案 include,include,include 函式原型 int open const char pathname,intflags,int perms 引數 pathna...
檔案處理函式
這兩天在寫個遍歷檔案批處理的小工具,碰到幾個時間相關的函式,整理了下,說不定以後可能會再用到呢 判斷檔案是否存在 bool filei ists lpcstr filepath findclose hfind return true 獲取檔案最後修改時間距當前時間的差值 用於判斷該檔案是否正在寫的一...