標準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
關閉檔案
int fclose(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
字元輸入輸出
int getc(file * stream)
int fgetc(file * stream)
int getchar(void)
fgetc是標準庫中的乙個函式,getc通常被定義為乙個巨集,實現效率要高一些,getchar來自stdin
int putc(int c,file * stream)
int fputc(int c,file * stream)
int putchar(int c)
行輸入輸出
char * gets(char *s)
char fgets(char * s,int size,file * stream)
int puts(const char *s)
int fputs(const char * s,file * stream)
格式化輸入輸出
int printf(const char *format,...)
int fprintf(file *fp,const char *format,...)
int sprintf(char *buf,const char *format,...)
int vprintf(const char *format,va_list arg)
int vfprintf(file *fp,const char *format,va_list arg)
int vsprintf(char *buf,const char *format,va_list arg)
int scanf(const char *format,...)
int fscanf(file *fp,const char *format,...)
int sscanf(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...