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,然後是一個冒號和一個空格。
|