C語言標準I O

2021-06-24 18:20:49 字數 2851 閱讀 7223

1、標準檔案

標準檔案       

檔案指標      

一般使用的裝置

標準輸入          

stdin鍵盤

標準輸出

stdout

顯示器

標準出錯          stderr

顯示器

2、檔案操作函式

2.1 開啟檔案

-----------------------------------------

#include

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

引數說明:

第乙個引數:const char *path,要開啟的檔案的位置。填寫是乙個檔名,可以有目錄。

第二個引數:const char *mode,開啟檔案的模式。唯讀、只寫、可讀可寫("r"、"r+"、"w"、"w+"、"a"、"a+",也可組合使用)

r = read     讀     唯讀,檔案必須存在,檔案指標在檔案開頭位置 r+

可讀可寫,檔案必須存在,檔案指標在檔案開頭位置

w = write    寫

只寫,檔案不存在則會建立,檔案存在,就把檔案清空,檔案指標在檔案開頭位置 w+

可讀可寫,檔案不存在則會建立,檔案存在,就把檔案清空,檔案指標在檔案開頭位置

a+     可讀追加,檔案不存在則會建立,檔案存在,就追加到檔案結尾,檔案指標在檔案結尾。讀還是從檔案的開頭位置讀。

2.2關閉檔案

----------------------------------------

#include

int  fclose(file *fp);

2.3 讀寫檔案

---------------------------------------

傳統格式化讀入寫出,存入陣列

#include

int fprintf(file *stream, const char *format, ...);

int fscanf(file *stream, const char *format, ...);

函式的返回值:讀或寫的個數。(也可無返回值)

---------------------------------------

每次一行的i/o。使用fgets 和fputs 一次讀或寫一行。每行都以乙個新行符終止。

#include

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

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

---------------------------------------

每次乙個字元的i/o。一次讀或寫乙個字元

#include

int fgetc(file *stream);

int fputc(int c, file *stream);

----------------------------------------

直接i/o。fread 和fwrite 函式支援這種型別的i/o。每次i/o 操作讀或寫某種數量的物件,而每個物件具有指定的長度。這兩個函式常用於從二進位制檔案中讀或寫乙個結構。

#include

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

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

其中*stream是指向的檔案,ptr是陣列名或接受的位址,size表示單個元素的大小,nmenmb是元素數

3. 出錯處理函式(三種方法)

----------------------------------------

#include

void perror(const char *s);

引數說明:

const char *s,我們通常填寫乙個函式名。系統會在後邊新增出錯的資訊,並且會自動換行。

----------------------------------------

#include

char *strerror(int errnum);

extern int errno;  //定義型別

strerror(errno);

----------------------------------------

printf("%m\n");  (簡單、常用)

4.判斷是否讀到了檔案結尾

----------------------------------------

#include

int feof(file *stream);

feof返回值:沒有檔案結尾返回:0;到了檔案結尾返回:1

5. 移動檔案指標

----------------------------------------

#include

long ftell(file *stream);  //返回檔案的長度

void rewind(file *stream);   //直接移到檔案開頭

int fseek(file *stream, long offset, int whence);

fseek函式引數說明:

file *stream;要操作的檔案。

long offset;向後移動多少位置。

int whence;移動的參考點(seek_set:檔案開頭、seek_cur:讀寫的當前位置、seek_end:檔案結尾)

C語言標準IO

這幾天參加中興捧月比賽,用到了c語言的標準io庫。由於對其中的一些細節不是非常清楚,導致了許多bug,花了好長時間來除錯。所以在此做個筆記,以備後查。1.緩衝區 全緩衝。在這種情況下,當填滿標準i o快取後才進行實際i o操作。對駐留在磁碟上的檔案的訪問通常是由標準i o庫實施全緩衝的。緩衝區可由標...

C語言標準IO

這幾天參加中興捧月比賽,用到了c語言的標準io庫。由於對其中的一些細節不是非常清楚,導致了許多bug,花了好長時間來除錯。所以在此做個筆記,以備後查。1.緩衝區 全緩衝。在這種情況下,當填滿標準i o快取後才進行實際i o操作。對駐留在磁碟上的檔案的訪問通常是由標準i o庫實施全緩衝的。緩衝區可由標...

C語言檔案IO操作(標準IO)

函式 file fopen const char path,const char mode 引數1 將要開啟的檔案路徑 引數2 開啟檔案的方式 1.r 唯讀的方式開啟 2.w 若檔案不存在則建立檔案,若存在此檔案則清空檔案內容並打卡 3.a 若檔案不存在則建立檔案,若存在則在末尾追加 不會清空原檔案...