標準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...