檔案流操作函式

2021-06-10 13:38:44 字數 2671 閱讀 4385

#include

void clearerr(file * stream);

clearerr()清除引數 stream指定的檔案流所使用的錯誤旗標。

int fclose(file * stream);

fclose()用來關閉先前 fopen()開啟的檔案。此動作會讓緩衝區

內的資料寫入檔案中,並釋放系統所提供的檔案資源。若關檔案動作成功則返回 0,有錯誤發生時則返回 eof並把錯誤**存到 errno

file * fdopen(int fildes,const char * mode);

fdopen()會將引數 fildes的檔案描述詞,轉換為對應的檔案指標後返回。引數 mode字串則代表著檔案指標的流形態,此形態必須和原先檔案描述詞讀寫模式相同。關於 mode字串格式請參考 fopen()。

int feof(file * stream);

feof()用來偵測是否讀取到了檔案尾,尾數 stream為 fopen()所返回之檔案指標。如果已到檔案尾則返回非零值,其他情況返回 0。

int fflush(file* stream);

fflush()會強迫將緩衝區內的資料寫回引數 stream指定的檔案中。如果引數 stream為 null,fflush()會將所有開啟的檔案資料更新。成功返回 0,失敗返回 eof,錯誤**存於 errno中。

int fgetc(file * stream);

fgetc()用來從引數 stream所指的檔案中讀取乙個字元。若讀到檔案尾而無資料時便返回 eof。

fgetc()會返回讀取到的字元,若返回 eof則表示到了檔案尾。

fp=fopen("exist","r");

while((c=fgetc(fp))!=eof)

printf("%c",c);

char * fgets(char * s,int size,file * stream);

fgets()用來從引數 stream所指的檔案內讀入字元並存到引數 s所指的記憶體空間,直到出現換行字元、讀到檔案尾或是已讀了 size-1個字元為止,最後會加上 null作為字串結束。

fgets()若成功則返回 s指標,返回 null則表示有錯誤發生。

fputs(fgets(s,80,stdin),stdout);

int fileno(file * stream);

fileno()用來取得引數 stream指定的檔案流所使用的檔案描述詞。

file * fp;

int fd;

fp=fopen("/etc/passwd","r");

fd=fileno(fp);

printf("fd=%d\n",fd);

fclose(fp);

file * fopen(const char * path,const char * mode);

函式說明返回值附加說明範例

引數 path字串包含欲開啟的檔案路徑及檔名,引數 mode字串則代表著流形態。mode有下列幾種形態字串:

r開啟唯讀檔案,該檔案必須存在。

r+開啟可讀寫的檔案,該檔案必須存在。

w開啟只寫檔案,若檔案存在則檔案長度清為 0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。

a+以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

int fputc(int c,file * stream);

fputc會將引數 c轉為 unsigned char後寫入引數 stream指定的檔案中。

fputc()會返回寫入成功的字元,即引數 c。若返回 eof則代表寫入失敗。

char a[26]="abcdefghijklmnopqrstuvwxyz";

int i;

fp= fopen("noexist","w");

for(i=0;i<26;i++)

fputc(a[i],fp);

fclose(fp);

int fputs(const char * s,file * stream);

fputs()用來將引數 s所指的字串寫入到引數 stream所指的檔案內。若成功則返回寫出的字元個數,返回 eof則表示有錯誤發生。

size_t fread(void * ptr,size_t size,size_t nmemb,file * stream);

fread()用來從檔案流中讀取資料。引數 stream為已開啟的檔案指標,引數 ptr指向欲存放讀取進來的資料空間,讀取的字元數以引數 size*nmemb來決定。fread()會返回實際讀取到的 nmemb數目,如果此值比引數 nmemb來得小,則代表可能讀到了檔案尾或有錯誤發生,這時必須用 feof()或 ferror()來決定發生什麼情況。

返回實際讀取到的 nmemb數目。

#define nmemb 3 

struct test

s[nmemb];

void main()

void main()

檔案操作(流)

開啟流 fi le fopen const char filename,const char mode 第乙個引數 檔名 第二個引數 方式 關閉流 r代表read的簡寫,代表可讀可寫,w代表write,b代表bit二進位制位,t代表text r 開啟唯讀檔案,該檔案必須存在 r 開啟可讀可寫的檔案,...

STL 檔案操作 流檔案操作

在c 中,有乙個stream這個類,所有的i o都以這個 流 類為基礎的,包括我們要認識的檔案i o,stream這個類有兩個重要的運算子 1 插入器 向流輸出資料。比如說系統有乙個預設的標準輸出流 cout 一般情況下就是指的顯示器,所以,cout write stdout n 就表示把字串 wr...

C 檔案流操作

include stdafx.h include include include include include using namespace std void writecharsettofile const string filename void outputfile const strin...