鍍金池/ 教程/ C/ C 標準庫 - < stdio.h >
C 輸入 & 輸出
C 標準庫 - < signal.h >
C 標準庫- < string.h >
C 循環(huán)
C 數(shù)據(jù)類型
C 字符串
C 標準庫 - < stdarg.h >
C 標準庫 - < math.h >
C 預處理器
C 存儲類
C 標準庫 - < locale.h >
C 指針
C 標準庫 - < assert.h >
C 結(jié)構(gòu)體
C 命令行參數(shù)
C 標準庫 - < ctype.h >
C 強制類型轉(zhuǎn)換
C 程序結(jié)構(gòu)
C typedef
C 遞歸
C 運算符
C 環(huán)境設(shè)置
C 函數(shù)
C 位域
C 標準庫 - < stddef.h >
C 數(shù)組
C 標準庫 - < errno.h >
C 標準庫 -參考手冊
C 可變參數(shù)
C 變量
C 錯誤處理
C 作用域規(guī)則
C 文件讀寫
C 內(nèi)存管理
C 基本語法
C 標準庫 - < stdio.h >
C 標準庫 - < time.h >
C 頭文件
C 判斷
C 標準庫 - < limits.h >
C 共用體
C 標準庫 - < setjmp.h >
C 常量
C 標準庫 - < float.h >
C 簡介
C 標準庫 - < stdlib.h >

C 標準庫 - < stdio.h >

簡介

stdio .h 頭文件定義了三個變量類型、一些宏和各種函數(shù)來執(zhí)行輸入和輸出。

庫變量

下面是頭文件 stdio.h 中定義的變量類型:

序號變量 & 描述
1size_t
這是無符號整數(shù)類型,它是 sizeof 關(guān)鍵字的結(jié)果。
2FILE
這是一個適合存儲文件流信息的對象類型。
3fpos_t
這是一個適合存儲文件中任何位置的對象類型。

庫宏

下面是頭文件 stdio.h 中定義的宏:

序號宏 & 描述
1NULL
這個宏是一個空指針常量的值。
2_IOFBF、_IOLBF _IONBF
這些宏擴展了帶有特定值的整型常量表達式,并適用于 setvbuf 函數(shù)的第三個參數(shù)。
3BUFSIZ
這個宏是一個整數(shù),該整數(shù)代表了 setbuf 函數(shù)使用的緩沖區(qū)大小。
4EOFM
這個宏是一個表示已經(jīng)到達文件結(jié)束的負整數(shù)。
5FOPEN_MAX
這個宏是一個整數(shù),該整數(shù)代表了系統(tǒng)可以同時打開的文件數(shù)量。
6FILENAME_MAX
這個宏是一個整數(shù),該整數(shù)代表了字符數(shù)組可以存儲的文件名的最大長度。如果實現(xiàn)沒有任何限制,則該值應為推薦的最大值。
7L_tmpnam
這個宏是一個整數(shù),該整數(shù)代表了字符數(shù)組可以存儲的由 tmpnam 函數(shù)創(chuàng)建的臨時文件名的最大長度。
8SEEK_CUR、SEEK_ENDSEEK_SET
這些宏是在These macros are used in the fseek 函數(shù)中使用,用于在一個文件中定位不同的位置。
9TMP_MAX
這個宏是 tmpnam 函數(shù)可生成的獨特文件名的最大數(shù)量。
10stderr、stdinstdout
這些宏是指向 FILE 類型的指針,分別對應于標準錯誤、標準輸入和標準輸出流。

庫函數(shù)

下面是頭文件 stdio.h 中定義的函數(shù):

為了更好地理解函數(shù),請按照下面的序列學習這些函數(shù),因為第一個函數(shù)中創(chuàng)建的文件會在后續(xù)的函數(shù)中使用到。

序號函數(shù) & 描述
1int fclose(FILE stream)
關(guān)閉流 stream。刷新所有的緩沖區(qū)。
2void clearerr(FILE stream)
清除給定流 stream 的文件結(jié)束和錯誤標識符。
3int feof(FILE stream)
測試給定流 stream 的文件結(jié)束標識符。
4int ferror(FILE stream)
測試給定流 stream 的錯誤標識符。
5int fflush(FILE stream)
刷新流 stream 的輸出緩沖區(qū)。
6int fgetpos(FILE stream, fpos_t pos)
獲取流 stream 的當前文件位置,并把它寫入到 pos。
7FILE fopen(const char filename, const char mode)
使用給定的模式 mode 打開 filename 所指向的文件。
8size_t fread(void ptr, size_t size, size_t nmemb, FILE stream)
從給定流 stream 讀取數(shù)據(jù)到 ptr 所指向的數(shù)組中。
9FILE freopen(const char filename, const char mode, FILE stream)
把一個新的文件名 filename 與給定的打開的流 stream 關(guān)聯(lián),同時關(guān)閉流中的舊文件。
10int fseek(FILE stream, long int offset, int whence)
設(shè)置流 stream 的文件位置為給定的偏移 offset,參數(shù) offset 意味著從給定的 whence 位置查找的字節(jié)數(shù)。
11int fsetpos(FILE stream, const fpos_t pos)
設(shè)置給定流 stream 的文件位置為給定的位置。參數(shù) pos 是由函數(shù) fgetpos 給定的位置。
12long int ftell(FILE stream)
返回給定流 stream 的當前文件位置。
13size_t fwrite(const void ptr, size_t size, size_t nmemb, FILE stream)
把 ptr 所指向的數(shù)組中的數(shù)據(jù)寫入到給定流 stream 中。
14int remove(const char filename)
刪除給定的文件名 filename,以便它不再被訪問。
15int rename(const char old_filename, const char new_filename)
把 old_filename 所指向的文件名改為 new_filename。
16void rewind(FILE stream)
設(shè)置文件位置為給定流 stream 的文件的開頭。
17void setbuf(FILE stream, char buffer)
定義流 stream 應如何緩沖。
18int setvbuf(FILE stream, char buffer, int mode, size_t size)
另一個定義流 stream 應如何緩沖的函數(shù)。
19FILE tmpfile(void)
以二進制更新模式(wb+)創(chuàng)建臨時文件。
20char tmpnam(char str)
生成并返回一個有效的臨時文件名,該文件名之前是不存在的。
21int fprintf(FILE stream, const char format, ...)
發(fā)送格式化輸出到流 stream 中。
22int printf(const char format, ...)
發(fā)送格式化輸出到標準輸出 stdout。
23int sprintf(char str, const char format, ...)
發(fā)送格式化輸出到字符串。
24int vfprintf(FILE stream, const char format, va_list arg)
使用參數(shù)列表發(fā)送格式化輸出到流 stream 中。
25int vprintf(const char format, va_list arg)
使用參數(shù)列表發(fā)送格式化輸出到標準輸出 stdout。
26int vsprintf(char str, const char format, va_list arg)
使用參數(shù)列表發(fā)送格式化輸出到字符串。
27int fscanf(FILE stream, const char format, ...)
從流 stream 讀取格式化輸入。
28int scanf(const char format, ...)
從標準輸入 stdin 讀取格式化輸入。
29int sscanf(const char str, const char format, ...)
從字符串讀取格式化輸入。
30int fgetc(FILE stream)
從指定的流 stream 獲取下一個字符(一個無符號字符),并把位置標識符往前移動。
31char fgets(char str, int n, FILE stream)
從指定的流 stream 讀取一行,并把它存儲在 str 所指向的字符串內(nèi)。當讀取 (n-1) 個字符時,或者讀取到換行符時,或者到達文件末尾時,它會停止,具體視情況而定。
32int fputc(int char, FILE stream)
把參數(shù) char 指定的字符(一個無符號字符)寫入到指定的流 stream 中,并把位置標識符往前移動。
33int fputs(const char str, FILE stream)
把字符串寫入到指定的流 stream 中,但不包括空字符。
34int getc(FILE stream)
從指定的流 stream 獲取下一個字符(一個無符號字符),并把位置標識符往前移動。
35int getchar(void)
從標準輸入 stdin 獲取一個字符(一個無符號字符)。
36char gets(char str)
從標準輸入 stdin 讀取一行,并把它存儲在 str 所指向的字符串中。當讀取到換行符時,或者到達文件末尾時,它會停止,具體視情況而定。
37int putc(int char, FILE stream)
把參數(shù) char 指定的字符(一個無符號字符)寫入到指定的流 stream 中,并把位置標識符往前移動。
38int putchar(int char)
把參數(shù) char 指定的字符(一個無符號字符)寫入到標準輸出 stdout 中。
39int puts(const char str)
把一個字符串寫入到標準輸出 stdout,直到空字符,但不包括空字符。換行符會被追加到輸出中。
40int ungetc(int char, FILE stream)
把字符 char(一個無符號字符)推入到指定的流 stream 中,以便它是下一個被讀取到的字符。
41void perror(const char str)
把一個描述性錯誤消息輸出到標準錯誤 stderr。首先輸出字符串 str,后跟一個冒號,然后是一個空格。

上一篇:C 存儲類下一篇:C 錯誤處理