C 庫 - <stdio.h>



stdio.h 標頭檔案定義了三種變數型別、多個宏以及用於執行輸入和輸出的各種函式。

庫變數

以下是 stdio.h 標頭檔案中定義的變數型別:

序號 變數及描述
1

size_t

這是一個無符號整數型別,是 sizeof 關鍵字的結果。

2

FILE

這是一個適合儲存檔案流資訊的型別。

3

fpos_t

這是一個適合儲存檔案中任何位置的物件型別。

庫宏

以下是 stdio.h 標頭檔案中定義的宏:

序號 宏及描述
1

NULL

此宏是空指標常量的值。

2

_IOFBF, _IOLBF _IONBF

這些宏展開為具有不同值的整型常量表達式,適合用作 setvbuf 函式的第三個引數。

3

BUFSIZ

此宏是一個整數,表示 setbuf 函式使用的緩衝區大小。

4

EOF

此宏是一個負整數,表示已到達檔案末尾。

5

FOPEN_MAX

此宏是一個整數,表示系統可以保證同時開啟的最大檔案數。

6

FILENAME_MAX

此宏是一個整數,表示適合容納最長可能的檔名的字元陣列的最長長度。如果實現沒有限制,則此值應為推薦的最大值。

7

L_tmpnam

此宏是一個整數,表示適合容納 tmpnam 函式建立的最長可能臨時檔名的字元陣列的最長長度。

8

SEEK_CUR, SEEK_END,SEEK_SET

這些宏用於 fseek 函式在檔案中定位不同的位置。

9

TMP_MAX

此宏是 tmpnam 函式可以生成的唯一檔名最大數量。

10

stderr, stdin,stdout

這些宏是指向 FILE 型別的指標,對應於標準錯誤、標準輸入和標準輸出流。

庫函式

以下是 stdio.h 標頭檔案中定義的函式:

序號 函式及描述
1 int fclose(FILE *stream)

關閉流。所有緩衝區都將被重新整理。

2 void clearerr(FILE *stream)

清除給定流的檔案末尾和錯誤指示符。

3 int feof(FILE *stream)

測試給定流的檔案末尾指示符。

4 int ferror(FILE *stream)

測試給定流的錯誤指示符。

5 int fflush(FILE *stream)

重新整理流的輸出緩衝區。

6 int fgetpos(FILE *stream, fpos_t *pos)

獲取流的當前檔案位置並將其寫入 pos。

7 FILE *fopen(const char *filename, const char *mode)

使用給定的模式開啟 filename 指向的檔名。

8 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

從給定流讀取資料到 ptr 指向的陣列中。

9 FILE *freopen(const char *filename, const char *mode, FILE *stream)

將新的檔名與給定的開啟流關聯,同時關閉流中的舊檔案。

10 int fseek(FILE *stream, long int offset, int whence)

將流的檔案位置設定為給定的偏移量。引數 offset 表示從給定的 whence 位置開始查詢的位元組數。

11 int fsetpos(FILE *stream, const fpos_t *pos)

將給定流的檔案位置設定為給定的位置。引數 pos 是 fgetpos 函式給出的位置。

12 long int ftell(FILE *stream)

返回給定流的當前檔案位置。

13 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

將 ptr 指向的陣列中的資料寫入給定流。

14 int remove(const char *filename)

刪除給定的檔名,使其不再可訪問。

15 int rename(const char *old_filename, const char *new_filename)

導致 old_filename 引用到的檔名更改為 new_filename。

16 void rewind(FILE *stream)

將檔案位置設定為給定流檔案的開頭。

17 void setbuf(FILE *stream, char *buffer)

定義流的緩衝方式。

18 int setvbuf(FILE *stream, char *buffer, int mode, size_t size)

另一個定義流緩衝方式的函式。

19 FILE *tmpfile(void)

以二進位制更新模式 (wb+) 建立臨時檔案。

20 char *tmpnam(char *str)

生成並返回一個有效的、不存在的臨時檔名。

21 int fprintf(FILE *stream, const char *format, ...)

將格式化輸出傳送到流。

22 int printf(const char *format, ...)

將格式化輸出傳送到 stdout。

23 int sprintf(char *str, const char *format, ...)

將格式化輸出傳送到字串。

24 int vfprintf(FILE *stream, const char *format, va_list arg)

使用引數列表將格式化輸出傳送到流。

25 int vprintf(const char *format, va_list arg)

使用引數列表將格式化輸出傳送到 stdout。

26 int vsprintf(char *str, const char *format, va_list arg)

使用引數列表將格式化輸出傳送到字串。

27 int fscanf(FILE *stream, const char *format, ...)

從流讀取格式化輸入。

28 int scanf(const char *format, ...)

從 stdin 讀取格式化輸入。

29 int sscanf(const char *str, const char *format, ...)

從字串讀取格式化輸入。

30 int fgetc(FILE *stream)

從指定的流獲取下一個字元(一個無符號 char)併為流推進位置指示符。

31 char *fgets(char *str, int n, FILE *stream)

從指定的流讀取一行並將其儲存到 str 指向的字串中。當讀取 (n-1) 個字元、讀取換行符或到達檔案末尾時停止,以先發生者為準。

32 int fputc(int char, FILE *stream)

將引數 char 指定的字元(一個無符號 char)寫入指定的流併為流推進位置指示符。

33 int fputs(const char *str, FILE *stream)

將字串寫入指定的流,直到但不包括空字元。

34 int getc(FILE *stream)

從指定的流獲取下一個字元(一個無符號 char)併為流推進位置指示符。

35 int getchar(void)

從 stdin 獲取一個字元(一個無符號 char)。

36 char *gets(char *str)

從 stdin 讀取一行並將其儲存到 str 指向的字串中。當讀取換行符或到達檔案末尾時停止,以先發生者為準。

37 int putc(int char, FILE *stream)

將引數 char 指定的字元(一個無符號 char)寫入指定的流併為流推進位置指示符。

38 int putchar(int char)

將引數 char 指定的字元(一個無符號 char)寫入 stdout。

39 int puts(const char *str)

將字串寫入 stdout,直到但不包括空字元。換行符將附加到輸出。

40 int ungetc(int char, FILE *stream)

將字元 char(一個無符號 char)推送到指定的流中,以便讀取下一個字元。

41 void perror(const char *str)

將描述性錯誤訊息列印到 stderr。首先列印字串 str,然後是一個冒號和一個空格。

廣告