標準I O開發

2022-05-03 03:18:06 字數 1675 閱讀 2769

標準i/o操作都是基於流緩衝的,符合ansic標準i/o處理。

全緩衝:填滿快取後才執行i/o操作。如malloc就是全緩衝。

行緩衝:遇到換行符時執行i/o操作。如stdin和stdout。

無緩衝:如stderr。

下面介紹的函式全部包含在stdio.h標頭檔案中。

開啟檔案

file *

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

//mode可以取r(讀),w(寫),a(追加)

file *

fdopen(int fd,const char * mode)

file *

freopen(const char *path,const char * mode,file * stream)

成功:指向 file 的指標

失敗:null

關閉檔案

intfclose(file * stream)

成功:0

失敗:eof

讀寫檔案

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)

size元素的大小

nmemb元素的個數

成功:返回實際讀寫的數目

失敗:返回eof

字元輸入輸出

intgetc(file * stream)

intfgetc(file * stream)

intgetchar(void)

fgetc是標準庫中的乙個函式,getc通常被定義為乙個巨集,實現效率要高一些,getchar來自stdin

intputc(int c,file * stream)

intfputc(int c,file * stream)

intputchar(int c)

行輸入輸出

char *

gets(char *s)

char

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

intputs(const char *s)

intfputs(const char * s,file * stream)

格式化輸入輸出

intprintf(const char *format,...)

intfprintf(file *fp,const char *format,...)

intsprintf(char *buf,const char *format,...)

intvprintf(const char *format,va_list arg)

intvfprintf(file *fp,const char *format,va_list arg)

intvsprintf(char *buf,const char *format,va_list arg)

intscanf(const char *format,...)

intfscanf(file *fp,const char *format,...)

intsscanf(char *buf,const char *format,...) 

標準I O開發

標準i o操作都是基於流緩衝的,符合ansic標準i o處理。全緩衝 填滿快取後才執行i o操作。如malloc就是全緩衝。行緩衝 遇到換行符時執行i o操作。如stdin和stdout。無緩衝 如stderr。下面介紹的函式全部包含在stdio.h標頭檔案中。開啟檔案 file fopen con...

I O 標準 I O 實驗

一 測試標準 i o 一次可以同時開啟多少個檔案 1 實驗思路 利用迴圈同時開啟檔案,直到不能開啟 2 如下 二 fgetc 和 fputc 實現拷貝檔案並輸出檔案行數 1 實驗思路 開啟檔案,用 fgetc 讀取,然後 fputc 輸出 2 如下 三 fgetc 和 putchar 實現只輸出字母...

標準IO以及標準IO實現拷貝

1 include 2 include 3 include 4int main 513char s this is test.14 size t ret fwrite s,1 strlen s fp 15 if 0 ret 16 寫完指標指向最後,如果讀的話需要移動指標 20fseek fp,0,s...