fgetc fputc fgets fputs fprintf fscanf getc getchar gets putc putchar puts ungetc函數介紹

fgetc (由文件中讀取一個字符)

頭文件: include<cstdio>

函數聲明: int fgetc(FILE * stream);

說明:

  • fgetc()從參數stream所指的文件中讀取一個字符.若讀到文件尾而無數據時便返回EOF.
  • 字符讀取函數fgetc()可從文件數據流中一次讀取一個字符,然後讀取光標移動到下一個字符,並逐步將文件的內容讀出

返回值 : getc() 會返回讀取到的字符,若返回 EOF 則表示到了文件尾

fputc(將一指定字符寫入文件流中)

頭文件: #include<cstdio>

函數聲明: int fputc(int c,FILE * stream);

說明:

  • fputc 會將參數c 轉爲 unsigned char 後寫入參數 stream 指定的文件中.
  • 其意 putc 函數的使用幾點說明:
    • 被寫入的文件可以用寫、讀寫、追加方式打開,用寫或讀寫方式,寫入字符時是從文件首開始的.如需保留原有文件內容,希望寫入的字符,被寫入的文件若不存在,則創建該文件.
    • 每寫入一個字符,文件內部位置指針向後移動一個字節.
    • fputc 函數有一個返回值,如寫入成功則返回寫入的字符,否則返回一個 EOF .可用此來判斷寫符,寫入一個文件,再把該文件內容讀出顯示在屏幕上.

返回值: fputc() 會返回寫入成功的字符,即參數 c.若返回 EOF 則代表寫入失敗.

fgets(由文件中讀取一字符串)

頭文件: #include<cstdio>

函數聲明: char * fgets(char * s,int size,FILE * stream);

說明: fgets() 用來從參數 stream 所指的文件內讀入字符並存到參數 s 所指的內存空間,直到出現換行字符、讀到文件尾或是已讀了size-1個字符爲止,最後會加上 NULL 作爲字符串結束.

返回值: gets() 若成功則返回 s 指針,返回 NULL 則表示有錯誤發生.  


fputs(將一指定的字符串寫入文件內)

頭文件: #include<cstdio>

函數聲明: int fputs(const char * s,FILE * stream);

說明: fputs() 用來將參數 s 所指的字符串寫入到參數 stream 所指的文件內.

返回值: 若成功則返回寫出的字符個數,返回 EOF 則表示有錯誤發生.


fprintf 與 fscanf(將指定字符寫磁盤文件)

函數聲明:

  • _CRTIMP int __cdecl fprintf(FILE *, const char *, ...);
  • _CRTIMP int __cdecl fscanf(FILE *, const char *, ...);

說明: 它們與 printf 和 scanf 函數相仿,都是格式化讀寫函數.不同的是:fprintf 和 fscanf 函數的讀寫對象不是終端(標準輸入輸出),而是磁盤文件.printf 函數是將內容輸出到終端(屏幕),因此,fprintf 就是將內容輸出到磁盤文件了


getc(由文件中讀取一個字符)

頭文件: #include<cstdio>

函數聲明: int getc(FILE * stream);

說明: 

  • getc() 用來從參數 stream 所指的文件中讀取一個字符.若讀到文件尾而無數據時便返回 EOF
  • getc() 與 fgetc() 作用相同,但 getc() 爲宏定義,非真正的函數調用.

返回值: getc() 會返回讀取到的字符,若返回 EOF 則表示到了文件尾.


getchar(由標準輸入設備內讀進一字符)

頭文件: #include<cstdio>

函數聲明: int getchar(void);

說明: 

  • getchar() 用來從標準輸入設備中讀取一個字符.然後將該字符從 unsigned char 轉換成 int 後返回
  • getchar() 非真正函數,而是 getc(stdin) 宏定義

返回值: getchar()會返回讀取到的字符,若返回EOF則表示有錯誤發生.


gets(由標準輸入設備內讀進一字符串)

頭文件: #include<cstdio>

函數聲明: char * gets(char *s);

說明: gets() 用來從標準設備讀入字符並存到參數 s 所指的內存空間,直到出現換行字符或讀到文件尾爲止,最後加上 NULL 作爲字符串結束,由於 gets() 無法知道字符串 s 的大小,必須遇到換行字符或文件尾纔會結束輸入,因此容易造成緩衝溢出的安全性問題.建議使用 fgets() 取代

返回值: gets() 若成功則返回 s 指針,返回 NULL 則表示有錯誤發生.


putc(將一指定字符寫入文件中)

頭文件: #include<cstdio> 

函數聲明: int putc(int c,FILE * stream);

說明:

  • putc() 會將參數 c 轉爲 unsigned char 後寫入參數 stream 指定的文件中
  • putc() 與 fputc()作用相同,但 putc() 爲宏定義,非真正的函數調用.

返回值: putc() 會返回寫入成功的字符,即參數 c.若返回 EOF 則代表寫入失敗.


putchar(將指定的字符寫到標準輸出設備)

頭文件: #include<cstdio>

函數聲明: int putchar (int c);

說明:

  • putchar() 用來將參數 c 字符寫到標準輸出設備.
  • putchar() 非真正函數,而是 putc(c,stdout) 宏定義.

返回值: putchar() 會返回輸出成功的字符,即參數 c.若返回 EOF 則代表輸出失敗.


puts(由標準輸入設備內讀進一字符串)

頭文件: #include<cstdio>

函數聲明: int puts(char *s);

說明:  把函數的字符串寫到標準輸出流 stdout,在輸出流中用換行符('\n')替換字符串中的結束符null 字符('\0 ') 

返回值: puts() 若成功則返回正的非零值,返回 EOF 則表示有錯誤發生.


ungetc(將指定字符寫回文件流中)

頭文件: #include<cstdio>

函數聲明: int ungetc(int c,FILE * stream);

說明: ungetc() 將參數 c 字符寫回參數 stream 所指定的文件流.這個寫回的字符會由下一個讀取文件流的函數取得.

返回值: 成功則返回 c 字符,若有錯誤則返回 EOF.

發佈了44 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章