C語言標準函式庫

-柚子皮-發表於2014-06-13
http://blog.csdn.net/pipisorry/article/details/30398049

C語言標準頭

<assert.h> 斷言
<ctype.h> 字元類測試
<errno.h> (部分)庫函式丟擲的錯誤程式碼
<float.h> 浮點數運算
<limits.h> 檢測整型資料型別值範圍
<locale.h> 本土化
<math.h> 數學函式
<setjmp.h> “非區域性跳轉”
<signal.h> 訊號
<stdarg.h> 可變引數列表
<stddef.h> 一些常數,型別和變數
<stdio.h> 輸入和輸出
<stdlib.h> 實用功能
<string.h> 字串函式
<time.h> 時間和日期函式

標頭檔案<assert.h>

唯一的目的是提供巨集assert的定義。如果斷言非真(expression==0),則程式會在標準錯誤流輸出提示資訊,並使程式異常中止呼叫abort() 。
定義:void assert (int expression);
//#define NDEBUG
#include <assert.h>	
int main(int argc, char* argv[]){
	int a = 12;
	int b = 24;
	assert( a > b );
	printf("a is larger than b!");
	return 0;
}
上面的程式會發現程式中止,printf並未執行,且有這樣的輸出:main: Assertion `a > b' failed. 原因就是因為a其實小於b,導致斷言失敗,assert 輸出錯誤資訊,並呼叫abort()中止了程式執行。


<ctype.h> 字元測試

<ctype.h> 主要提供兩類重要的函式:字元測試函式和字元大小轉化函式。提供的函式中都以int型別為引數,並返回一個int型別的值。實參型別應該隱式轉換或者顯示轉換為int型別。

int isalnum(int c); 判斷是否是字母或數字。
int isalpha(int c); 判斷是否是字母。
int iscntrl(int c); 判斷是否是控制字元。
int isdigit(int c); 判斷是否是數字。
int isgraph(int c); 判斷是否是可顯示字元。
int islower(int c); 判斷是否是小寫字母。
int isupper(int c); 判斷是否是大寫字母。
int isprint(int c); 判斷是否是可顯示字元。
int ispunct(int c); 判斷是否是標點字元。
int isspace(int c); 判斷是否是空白字元
int isxdigit(int c); 判斷字元是否為16進位制。
int tolower(int c); 轉換為小寫字母。
int toupper(int c); 轉換為大寫字母。

<errno.h> 錯誤程式碼

error.h 是 C語言 C標準函式庫裡的標頭檔案,定義了通過錯誤碼來返回錯誤資訊的巨集:
errno 巨集定義為一個int型態的左值, 包含任何函式使用errno功能所產生的上一個錯誤碼。

一些表示錯誤碼,定義為整數值的巨集:
EDOM 源自於函式的引數超出範圍,例如 sqrt(-1)
ERANGE 源自於函式的結果超出範圍,例如s trtol("0xfffffffff",NULL,0)
EILSEQ 源自於不合​​法的字元順序,例如 wcstombs(str, L"\xffff", 2)


<float.h> 浮點數運算

float標頭檔案定義了浮點型數值的最大最小限浮點型數值以下面的方式定義:符號-value E 指數符號是正負,value是數字的值
下面的值是用#define定義的,這些值是詳細的實現,但是可能沒有比這裡給出的更詳細,
在所有例項裡FLT指的是float,DBL是double,LDBL指的是long double
FLT_ROUNDS
定義浮點型數值四捨五入的方式,-1是不確定,0是向0,1是向最近,2是向正無窮大,3是負無窮大
FLT_RADIX 2
定義指數的基本表示(比如base-2是二進位制,base-10是十進位制表示法,16是十六進位制)

FLT_MANT_DIG,DBL_MANT_DIG,LDBL_MANT_DIG
定義數值裡數字的個數

FLT_DIG 6,DBL_DIG 10,LDBL_DIG 10
在四捨五入之後能不更改表示的最大小數位

FLT_MIN_EXP,DBL_MIN_EXP,LDBL_MIN_EXP
FLT_RADIX 的指數的最小負整數值

FLT_MIN_10_EXP -37,DBL_MIN_10_EXP -37,LDBL_MIN_10_EXP -37
10進製表示法的的指數的最小負整數值

FLT_MAX_EXP ,DBL_MAX_EXP ,LDBL_MAX_EXP
FLT_RADIX 的指數的最大整數值

FLT_MAX_10_EXP +37 ,DBL_MAX_10_EXP ,LDBL_MAX_10_EXP +37 +37
10進製表示法的的指數的最大整數值

FLT_MAX 1E+37,DBL_MAX 1E+37,LDBL_MAX 1E+37
浮點型的最大限

FLT_EPSILON 1E-5,DBL_EPSILON 1E-9,LDBL_EPSILON 1E-9
能表示的最小有符號數


<limits.h> 取值範圍

CHAR_BIT 一個ASCII字元長度
SCHAR_MIN 字元型最小值
SCHAR_MAX 字元型最大值
UCHAR_MAX 無符號字元型最大值

CHAR_MIN
CHAR_MAX

char字元的最大最小值,如果char字元正被表示有符號整數。它們的值就跟有符號整數一樣。否則char字元的最小值就是0,最大值就是無符號char字元的最大值。

MB_LEN_MAX 一個字元所佔最大位元組數
SHRT_MIN 最小短整型
SHRT_MAX 最大短整形
USHRT_MAX 最大無符號短整型
INT_MIN 最小整型
INT_MAX 最大整形
UINT_MAX 最大無符號整型
LONG_MIN 最小長整型
LONG_MAX 最大長整型
ULONG_MAX 無符號長整型


<locale.h> 本土化

國家、文化和語言規則集稱為區域設定,<locale.h> 標頭檔案中定義了區域設定相關的函式。setlocale函式用於設定或返回當前的區域特性,localeconv用於返回當前區域中的數字和貨幣資訊(儲存在struct lconv結構例項中)。setlocale的第一個實參指定要改變的區域行為類別,預定義的setlocale類別有:
LC_ALL
全部本地化資訊
LC_COLLATE
影響strcoll和strxfrm
LC_CTYPE
影響字元處理函式和多行字元處理函式
LC_MONETARY
影響localeconv返回的貨幣格式化資訊
LC_NUMERIC
影響格式化輸入輸出字元中的小數點符號
LC_TIME
影響strftime函式

<locale.h> 標頭檔案中提供了2個函式
setlocale() 設定或恢復本地化資訊
localeconv() 返回當前地域設定的資訊
setlocale(constant,location) 用法
如果這個函式成功執行,將返回當前的場景屬性;如果執行失敗,將返回False。

constant 引數 (必要引數。指定設定的場景資訊)
LC_ALL – 所有下屬的常量
LC_COLLATE – 排列順序
LC_CTYPE – 字元分類和轉換(例如:將所有的字元轉換成小寫或大寫形式)
LC_MESSAGES – 系統資訊格式
LC_MONETARY – 貨幣 / 通貨格式
LC_NUMERIC – 數值格式
LC_TIME – 日期和時間格式

location (必要引數)
必要引數。指定需要進行場景資訊設定的國家或區域。它可以由一個字串或一個陣列組成。如果本地區域是一個陣列,那麼setlocale()函式將嘗試每 個陣列元素直到它從中獲取有效的語言和區域程式碼資訊為止。如果一個區域處於不同作業系統中的不同名稱下,那麼這個引數將非常有用。
struct lconv *localeconv(void); 用法
localeconv 返回lconv結構指標 lconv結構介紹: 儲存格式化的數值資訊,儲存數值包括貨幣和非貨幣的格式化資訊,localeconv返回指向該物件的指標,以下為結構中的成員及資訊:
char *decimal_point; 數字的小數點號
char *thousands_sep; 數字的千分組分隔符
每個元素為相應組中的數字位數,索引越高的元素越靠左邊。一個值為CHAR_MAX的元素表示沒有更多的分組了。一個值為0的元素表示前面的元素能用在靠左邊的所有分組中
char *grouping; 數字分組分隔符
char *int_curr_symbol; 前面的三個字元ISO 4217中規定的貨幣符號,第四個字元是分隔符,第五個字元是'\0' */
char *currency_symbol; 本地貨幣符號
char *mon_decimal_point; 貨幣的小數點號
char *mon_thousands_sep; 千分組分隔符
char *mon_grouping; 類似於grouping元素
char *positive_sign; 正幣值的符號
char *negative_sign; 負幣值的符號
char int_frac_digits; 國際幣值的小數部分
char frac_digits; 本地幣值的小數部分
char p_cs_precedes; 如果currency_symbol放在正幣值之前則為1,否則為0
char p_sep_by_space; 當且僅當currency_symbol與正幣值之間用空格分開時為1
char n_cs_precedes; < 如果currency_symbol放在負幣值之前則為1,否則為0/dt>
char n_sep_by_space; 當且僅當currency_symbol與負幣值之間用空格分開時為1
char p_sign_posn; 格式化選項
0 - 在數量和貨幣符號周圍的圓括號
1 - 數量和貨幣符號之前的 + 號
2 - 數量和貨幣符號之後的 + 號
3 - 貨幣符號之前的 + 號
4 - 貨幣符號之後的 + 號
char n_sign_posn 格式化選項
0 - 在數量和貨幣符號周圍的圓括號
1 - 數量和貨幣符號之前的 - 號
2 - 數量和貨幣符號之後的 - 號
3 - 貨幣符號之前的 - 號
4 - 貨幣符號之後的 - 號
最後提示:可以使用setlocale(LC_ALL,NULL)函式將場景資訊設定為系統預設值。
皮皮blog



<math.h> 數學函式

<math.h> 是C語言中的數學函式庫,一些數學計算的公式的具體實現是放在math.h裡。
三角函式
double sin(double x); 正弦
double cos(double x); 餘弦
double tan(double x); 正切
*cot三角函式,可以使用tan(PI/2-x)來實現。

反三角函式
double asin(double x);結果介於[-PI/2, PI/2]
double acos(double x); 結果介於[0, PI]
double atan(double x);
反正切(主值), 結果介於[-PI/2, PI/2]
double atan2(double y,double);
反正切(整圓值), 結果介於[-PI, PI]

雙曲三角函式
double sinh(double x); 計算雙曲正弦
double cosh(double x); 計算雙曲餘弦
double tanh(double x); 計算雙曲正切

指數與對數
double exp(double x); 求取自然數e的冪
double sqrt(double x); 開平方
double log(double x); 以e為底的對數
double log10(double x); 以10為底的對數
double pow(double x, double y);
計算以x為底數的y次冪
float powf(float x, float y);
與pow一致,輸入與輸出皆為浮點數

取整
double ceil(double); 取上整
double floor(double); 取下整

標準化浮點數
double frexp(double f, int *p);
標準化浮點數, f = x * 2^p, 已知f求x, p ( x介於[0.5, 1] )
double ldexp(double x, int p);
與frexp相反, 已知x, p求f

取整與取餘
double modf(double, double*);
將引數的整數部分通過指標回傳, 返回小數部分

double fmod(double, double);
返回兩引數相除的餘數


<setjmp.h> “非區域性跳轉”

在該標頭檔案中定義了一種特別的函式呼叫和函式返回順序的方式。這種方式不同於以往的函式呼叫和返回順序,
它允許程式流程立即從一個深層巢狀的函式中返回。
<setjmp.h> 中定義了兩個巨集:
int setjmp(jmp_buf env); /*設定調轉點*/
longjmp(jmp_buf jmpb, int retval); /*跳轉*/

巨集setjmp的功能是將當前程式的狀態儲存在結構env ,為呼叫巨集longjmp設定一個跳轉點。setjmp將當前資訊儲存在env中供longjmp使用。其中env是jmp_buf結構型別的。
Demo :
#include  <stdio.h>
#include  <setjmp.h>
static jmp_buf buf;
void second(void) {
    printf("second\n");        
	// 列印
    longjmp(buf,1);            
	// 跳回setjmp的呼叫處
	- 使得setjmp返回值為1
}
 void first(void) {
    second();
    printf("first\n");          
	// 不可能執行到此行
}
 int main() {   
    if ( ! setjmp(buf) ) {
        first();               
	// 進入此行前,setjmp返回0
    } else {                  
	// 當longjmp跳轉回,
	setjmp返回1,因此進入此行
        printf("main\n");  
		// 列印
    }
     return 0;
}
直接呼叫setjmp時,返回值為0,這一般用於初始化(設定跳轉點時)。以後再呼叫longjmp巨集時用env變數進行跳轉。程式會自動跳轉到setjmp巨集的返回語句處,此時setjmp的返回值為非0,由longjmp的第二個引數指定。
一般地,巨集setjmp和longjmp是成對使用的,這樣程式流程可以從一個深層巢狀的函式中返回。

<signal.h> 訊號

在signal.h標頭檔案中,提供了一些函式用以處理執行過程中所產生的訊號。
巨集:
SIG_DFL
SIG_ERR
SIG_IGN
SIGABRT
SIGFPE
SIGILL
SIGINT
SIGSEGV
SIGTERM
函式:
signal();
raise();

變數:
typedef sig_atomic_t
sig_atomic_t 型別是int型別,用於接收signal函式的返回值。
以SIG_開頭的巨集用於定義訊號處理函式

SIG_DFL 預設訊號處理函式。
SIG_ERR 表示一個錯誤訊號,當signal函式呼叫失敗時的返回值。
SIG_IGN 訊號處理函式,表示忽略該訊號。

SIG開頭的巨集是用來在下列情況下,用來表示一個訊號程式碼:

SIGABRT 異常終止(abort函式產生)。
SIGFPE 浮點錯誤(0作為除數產生的錯誤,非法的操作)。
SIGILL 非法操作(指令)。
SIGINT 互動式操作產生的訊號(如CTRL - C)。
SIGSEGV 無效訪問儲存(片段的非法訪問,記憶體非法訪問)。
SIGTERM 終止請求。

signal 函式
void(*signal(int sig,void (*func)(int)))(int);
上面的函式定義中,sig 表示一個訊號程式碼(相當於暗號類別),即是上面所定義的SIG開頭的巨集。當有訊號出現(即當收到暗號)的時候,引數func所定義的函式就會被呼叫。如果func等於SIG_DFL,則表示呼叫預設的處理函式。如果等於SIG_IGN,則表示這個訊號被忽略(不做處理)。如果func是使用者自定義的函式,則會先呼叫預設的處理函式,再呼叫使用者自己定義的函式。 自定義函式,有一個引數,引數型別為int,用來表示訊號程式碼(暗號類別)。同時,函式必須以return、abort、exit 或 longjump等語句結束。當自定義函式執行結束,程式會繼續從被終止的地方繼續執行。(除非訊號是SIGFPE導致結果未定義,則可能無法繼續執行)
如果呼叫signal函式成功,則會返回一個指標,該指標指向為所指定的訊號類別的所預先定義的訊號處理器。
如果呼叫失敗,則會返回一個SIG_ERR,同時errno的值也會被相應的改變。

raise 函式
int raise(int sig);
發出一個訊號sig。訊號引數為SIG開頭的巨集。
如果呼叫成功,返回0。否則返回一個非零值。


<stdarg.h> 可變引數

<stdarg.h> 標頭檔案定義了一些巨集,當函式引數未知時去獲取函式的引數
變數:typedef va_list
巨集:
  • va_start()
  • va_arg()
  • va_end()

變數和定義
va_list型別通過stdarg巨集定義來訪問一個函式的參數列,引數列表的末尾會用省略號省略
宣告:void va_start(va_list ap, last_arg);
用va_arg和va_end巨集初始化引數ap,last_arg是傳給函式的固定引數的最後一個,省略號之前的那個引數注意va_start必須在使用va_arg和va_end之前呼叫

宣告:type va_arg(va_list ap, type);
用type型別擴充套件到參數列的下個引數
注意ap必須用va_start初始化,如果沒有下一個引數,結果會是undefined

宣告:void va_end(va_list ap);允許一個有參數列(使用va_start巨集)的函式返回,如果返回之前沒有呼叫va_end,結果會是undefined。引數變數列表可能不再使用(在沒呼叫va_start的情況下呼叫va_end)

<stddef.h> 一些常數,型別和變數

<stddef.h> 標頭檔案定義了一些標準定義,許多定義也會出現在其他的標頭檔案裡
巨集命令:NULL 和 offsetof()
變數:
typedef ptrdiff_t
typedef size_t
typedef wchar_t


變數和定義:
ptrdiff_t是兩個指標相減的結果
size_t是sizeof一個關鍵詞得到的無符號整數值
wchar_t是一個寬字元常量的大小,是整數型別
NULL是空指標的常量值

offsetof(type, member-designator);這個巨集返回一個結構體成員相對於結構體起始地址的偏移量(位元組為單位),type是結構體的名字,member-designator是結構體成員的名字。


<stdio.h> 輸入和輸出

<stdio.h>標頭檔案定義了用於輸入和輸出的函式、型別和巨集。最重要的型別是用於宣告檔案指標的FILE。另外兩個常用的型別是 size_t和fpos_t,size_t是由運算子sizeof產生的無符號整型別;fpos_t型別定義能夠唯一說明檔案中的每個位置的物件。由頭部 定義的最有用的巨集是EOF,其值代表檔案的結尾。
變數:
typedef size_t
typedef FILE
typedef fpos_t


常量 :
NULL 空值
_IOFBF 表示完全緩衝
_IOLBF 表示線緩衝
_IONBF 表示無快取
BUFSIZ setbuf函式所使用的緩衝區的大小
EOF EOF是負整數表示END OF FILE
FOPEN_MAX (20)同時開啟的檔案的最大數量
FILENAME_MAX 檔名的最大長度
L_tmpnam整數,最大長度的臨時檔名
SEEK_CUR取得目前檔案位置
SEEK_END將讀寫位置移到檔案尾時
SEEK_SET將讀寫位置移到檔案開頭
TMP_MAXtmpnam最多次數
stderr標準錯誤流,預設為螢幕, 可輸出到檔案。
stdin標準輸入流,預設為鍵盤
stdout標準輸出流,預設為螢幕

所有函式(點選可檢視介紹和DEMO) :
clearerr(); 復位錯誤標誌 fclose(); 關閉一個流。 feof(); 檢測檔案結束符 ferror(); 檢查流是否有錯誤 fflush();更新緩衝區 fgetpos(); 移動檔案流的讀寫位置 fopen();開啟檔案 fread(); 從檔案流讀取資料 freopen(); 開啟檔案 fseek(); 移動檔案流的讀寫位置 fsetpos();定位流上的檔案指標 ftell(); 取得檔案流的讀取位置 fwrite(); 將資料寫至檔案流 remove(); 刪除檔案 rename(); 更改檔名稱或位置 rewind(); 重設讀取目錄的位置為開頭位置 setbuf(); 把緩衝區與流相聯 setvbuf(); 把緩衝區與流相關 tmpfile(); 以wb+形式建立一個臨時二進位制檔案 tmpnam();  產生一個唯一的檔名 fprintf(); 格式化輸出資料至檔案 fscanf(); 格式化字串輸入 printf(); 格式化輸出資料 scanf(); 格式輸入函式 sprintf(); 格式化字串複製 sscanf(); 格式化字串輸入 vfprintf(); 格式化輸出資料至檔案 vprintf(); 格式化輸出資料 vsprintf(); 格式化字串複製 fgetc(); 由檔案中讀取一個字元 fgets(); 檔案中讀取一字串 fputc(); 將一指定字元寫入檔案流中 fputs(); 將一指定的字串寫入檔案內 getc(); 由檔案中讀取一個字元 getchar(); 由標準輸入裝置內讀進一字元 gets(); 由標準輸入裝置內讀進一字串 putc(); 將一指定字元寫入檔案中 putchar(); 將指定的字元寫到標準輸出裝置 puts(); 送一字串到流stdout中 ungetc();  將指定字元寫回檔案流中 perror(); 列印出錯誤原因資訊字串


<stdlib.h> 實用功能

<stdlib.h> 標頭檔案裡包含了C語言的中最常用的系統函式,stdlib.h裡面定義了五種型別、一些巨集和通用工具函式。型別例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;巨集例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等。
巨集:
  • NULL
  • EXIT_FAILURE 失敗狀態碼
  • EXIT_SUCCESS 成功狀態碼
  • RAND_MAX rand的最大返回值
  • MB_CUR_MAX 多位元組字元中的最大位元組數

變數:
  • typedef size_t是unsigned integer型別
  • typedef wchar_t 一個寬字元的大小
  • struct div_t 是結構體型別 作為div函式的返回型別
  • struct ldiv_t是結構體型別 作為ldiv函式的返回型別

函式:
  • 字串函式
  • atof(); 將字串轉換成浮點型數
  • atoi(); 將字串轉換成整型數
  • atol(); 將字串轉換成長整型數
  • strtod(); 將字串轉換成浮點數
  • strtol(); 將字串轉換成長整型數
  • strtoul(); 將字串轉換成無符號長整型數
  • 記憶體控制函式
  • calloc(); 配置記憶體空間
  • free(); 釋放原先配置的記憶體
  • malloc(); 配置記憶體空間
  • realloc(); 重新分配主存
  • 環境函式
  • abort(); 異常終止一個程式
  • atexit();設定程式正常結束前呼叫的函式
  • exit(); 正常結束程式
  • getenv(); 取得環境變數內容
  • system(); 執行shell 命令

  • 搜尋和排序函式
  • bsearch(); 二元搜尋
  • qsort(); 利用快速排序法排列陣列
  • 數學函式
  • abs(); 計算整型數的絕對值
  • div(); 將兩個整數相除, 返回商和餘數
  • labs(); 取長整型絕對值
  • ldiv();兩個長整型數相除, 返回商和餘數
  • rand(); 隨機數發生器
  • srand(); 設定隨機數種子
  • 多位元組函式
  • mblen(); 根據locale的設定確定字元的位元組數
  • mbstowcs(); 把多位元組字串轉換為寬字串
  • mbtowc(); 把多位元組字元轉換為寬字元
  • wcstombs(); 把寬字串轉換為多位元組字串
  • wctomb(); 把寬字元轉換為多位元組字元

皮皮blog



<string.h> 字串函式

<stdlib.h> 標頭檔案裡包含了C語言的最常用的字串操作函式
巨集:
  • NULL

變數:
  • typedef size_t

函式:

<time.h> 時間和日期函式

<time.h> 是C標準函式庫中獲取時間與日期、對時間與日期資料操作及格式化的標頭檔案。

巨集:
  • NULL null是一個null指標常量的值
  • CLOCKS_PER_SEC 每秒的時鐘數


變數:
  • typedef size_t 型別定義
  • typedef clock_t型別定義
  • struct tm 結構體

  • struct tm {
    int tm_sec; /* 秒 – 取值區間為[0,59] */

    int tm_min; /* 分 - 取值區間為[0,59] */

    int tm_hour; /* 時 - 取值區間為[0,23] */

    int tm_mday; /* 一個月中的日期 - 取值區間為[1,31] */

    int tm_mon; /* 月份(從一月開始,0代表一月) - 取值區間為[0,11] */

    int tm_year; /* 年份,其值等於實際年份減去1900 */

    int tm_wday; /* 星期 – 取值區間為[0,6],其中0代表星期天,1代表星期一,以此類推 */

    int tm_yday; /* 從每年的1月1日開始的天數 – 取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推 */

    int tm_isdst; /* 夏令時識別符號,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不瞭解情況時,tm_isdst()為負。*/
    };

函式:
皮皮blog


conio.h

不是C標準庫中的標頭檔案。
  conio是Console Input/Output(控制檯輸入輸出)的簡寫,其中定義了通過控制檯進行資料輸入和資料輸出的函式,主要是一些使用者通過按鍵盤產生的對應操作,比如getch()函式等等。
  包含的函式
  cgets(char *);
  cprintf(const char *, ...);
  cputs(const char *);
  cscanf(const char *, ...);
  inp(unsigned short);
  inpw(unsigned short);
  getch(void);
  getche(void);
  kbhit(void);
  outp(unsigned short, int);
  outpw(unsigned short, unsigned short);
  putch(int);
  ungetch(int);
  void _Cdecl clreol (void);
  void _Cdecl clrscr (void);
  void _Cdecl delline (void);
  int _Cdecl gettext (int left, int top, int right, int bottom,
  void *destin);
  void _Cdecl gettextinfo (struct text_info *r);
  void _Cdecl gotoxy (int x, int y);
  void _Cdecl highvideo (void);
  void _Cdecl insline (void);
  void _Cdecl lowvideo (void);
  int _Cdecl movetext (int left, int top, int right, int bottom,
  int destleft, int desttop);
  void _Cdecl normvideo (void);
  int _Cdecl puttext (int left, int top, int right, int bottom,
  void *source);
  void _Cdecl textattr (int newattr);
  void _Cdecl textbackground (int newcolor);
  void _Cdecl textcolor (int newcolor);
  void _Cdecl textmode (int newmode);
  int _Cdecl wherex (void);
  int _Cdecl wherey (void);
  void _Cdecl window (int left, int top, int right, int bottom);
  har *_Cdecl cgets (char *str);
  int _Cdecl cprintf (const char *format, ...);
  int _Cdecl cputs (const char *str);
  int _Cdecl cscanf (const char *format, ...);
  int _Cdecl getch (void);
  int _Cdecl getche (void);
  char *_Cdecl getpass (const char *prompt);
  int _Cdecl kbhit (void);
  int _Cdecl putch (int c);

  int _Cdecl ungetch (int ch);

from: http://blog.csdn.net/pipisorry/article/details/30398049

ref: source: 《C & C++ Code Capsules》

Standard C 語言標準函式庫速查*


相關文章