本次詳細介紹c下檔案的各種api.
1)開啟檔案
file *fopen( const
char * filename,const
char * mode);
返回檔案控制代碼,非null
為正確開啟。
2)關閉檔案
int
fclose( file * stream);
例子:
file * psrc = fopen("data5610.txt", "r");
if (psrc == null)
1)fscanf從檔案中按照固定格式讀取
fscanf
適用於讀取以文字格式開啟的檔案。並且,文字的讀取必須按照固定的格式(format)讀取。類似於scanf
,只不過資料是從檔案中讀取,而非標準的顯示屏中。
int fscanf( file * stream,
const char * format[, argument]...
);
2)fprintf按照固定格式寫入檔案中
類似於printf
,只不過資料是儲存在檔案中,而非標準的顯示屏中。
int fprintf( file* stream,const char * format [, argument ]...);
例子:
while ( fscanf(psrc, "%d
%s", &i, str)!=eof )
1)fgetc適合於從檔案中一次讀取乙個位元組
int fgetc( file * stream);
fgetc
適合於一次從檔案中讀取乙個位元組,並且每個位元組被當作乙個無符號的8位(二進位制)數,取值範圍為0-255,類似於getchar()
。
int getchar( void );
2)fputc適用於向檔案中依次讀入乙個位元組
int fputc( int c,file * stream);
類似於putchar()
int
putchar( int c);
例子:
while ( (c= fgetc(psrc)) != eof )
fputc(c, pdest);
1)fgets
一次從檔案中讀取一行,包括換行符,並在字串的最後新增'\0'
。
char *fgets( char * string,int n,file * stream);
其中,n
表示的為string中最大儲存的字元數,通常,為了預留一位儲存'\0'
,長度通常取(sizeof(string)-1)
。
2)fputs
一次向檔案中寫入一行資料
int
fputs( const
char * string,file * stream);
例子:
while ( fgets(str, sizeof(str)-1, psrc) )
fputs(str, pdest);
與gets
和puts
函式的區別:
1)fread從檔案中讀gets
函式從標準流stdio
中讀取資料,不判斷上界,直到讀取到'\n'
或者eof
才停止。換行符 不作為讀取的字串的內容,而是被轉化為'\0'
儲存在指定的記憶體空間中。
puts
函式是乙個將制定字串輸入到標準輸出流stdout
中,輸出的停止標誌位讀取到字串中的'\0'
,但是,puts
會在輸出字串之後自動輸出乙個換行符。也就是說puts(char * s)
與printf("%s\n", s)
的作用是相同的。
size_t fread( void * buffer,size_t size,size_t count,file * stream);
fread
從檔案中讀取count*size
位元組的資料,或者說讀取count
個size
位元組大小的資料,並儲存到buffer
指向的記憶體中。
返回值為成功讀取的size
大小的資料塊的個數。
2)fwrite向檔案中寫
size_t fwrite( const
void*buffer,size_t size,size_t count,file*stream);
fwrite
將buffer
指向的記憶體中的count
個size
大小的資料寫入到檔案中。返回值表示成功寫入的資料個數count。
例子:
while ( fread(&buffer, sizeof(struct stru), 10, psrc) )
fwrite(&buffer, sizeof(struct stru), 10, pdest);
int fseek(file * stream,long offset,int origin );
該函式將指向檔案stream
的檔案指標設定到距離origin
處offset
偏移位元組處的地方。
origin
的取值:
seek_set
:檔案開始處;
seek_cur
:執行本函式之前,檔案指標所在位置;
seek_end
:檔案結尾處
另外,fseek
函式通常與fread
和fwrite
一同完成從某個特定位置讀寫資料。
例子:
fseek(psrc, 1, seek_set); //從檔案開始處偏移乙個位元組
fread(&buffer, sizeof(char), 6, psrc); //從偏移處讀取6*sizeof(char)個資料
fwrite(&buffer, sizeof(char), 6, pdest); //從偏移處讀取6*sizeof(char)個資料存入檔案pdest中
C語言中的檔案操作
include file fopen const char path,const char mode path表示檔案路徑,mode表示檔案使用方式 int fclose file pf 成功關閉返回0,否則返回eof,並且將錯誤記錄在系統全域性變數errno中 從stream當前位置讀取乙個字元 ...
C語言中的檔案操作
一 檔案 檔案 file 一般指儲存在外部介質上資料的集合,從不同的角度可對檔案作不同的分類。根據儲存規則可以將其分為 mp4 txt bmp jpg exe rmvb等檔案。從使用者的角度看,檔案可分為普通檔案和裝置檔案兩種 普通檔案是指駐留在磁碟或其它外部介質上的乙個有序資料集 裝置檔案是指與主...
C語言中的檔案操作
c語言中的檔案操作函式,將資料寫入檔案。具體如下 一 開啟檔案。使用fopen函式。格式為 file fopen const char name,const char mode 其中name為要寫入的檔名,mode為格式字元。要寫入檔案,mode可以是 1 w 只寫方式,文字形式輸入 2 wb 只寫...