跳轉到內容

C 程式設計/MS Windows 參考/conio.h

來自華夏公益教科書,開放的書籍,面向開放的世界

conio.h 是一個在舊的 MS-DOS 編譯器中使用的 C 標頭檔案,用於建立文字使用者介面。它在 The C Programming Language 書籍中沒有描述,它也不是 C 標準庫、ISO C 的一部分,也不被 POSIX 要求。

此標頭檔案聲明瞭幾個有用的庫函式,用於從程式執行“控制檯輸入和輸出”。大多數針對 DOS、Windows 3.x、Phar Lap (company)|Phar Lap、DOSX、OS/2 或 Win32[1] 的 C 編譯器都有此標頭檔案,並在預設的 C 庫中提供相關的庫函式。大多數針對 UNIX 和 Linux 的 C 編譯器都沒有此標頭檔案,也不提供庫函式。一些嵌入式系統使用與 conio 相容的庫[2]

conio.h宣告的庫函式在不同的編譯器之間略有不同。正如最初在 Lattice C 中實現的那樣,各種函式直接對映到前幾個 DOS int 21h 函式。但是,Borland 的 Turbo C 附帶的庫沒有使用 DOS API,而是直接訪問影片 RAM 進行輸出並使用 BIOS 中斷呼叫;它們還具有受成功的 Turbo Pascal 庫啟發的其他函式。

針對非 DOS 作業系統的編譯器,例如 Linux[需要引用]、Win32 和 OS/2,提供了這些函式的不同實現。[需要引用] DJ Delorie 為 DJGPP|GO32 擴充套件程式完成的版本特別廣泛[3]。另一個例子是 SyncTERM#Libraries | SyncTERM 的 ciolib。

lpc

int kbhit(void) 確定是否按下了鍵盤鍵。
int getch(void) 直接從控制檯讀取字元,不帶緩衝區,也不帶回顯。
int getche(void) 直接從控制檯讀取字元,不帶緩衝區,但帶回顯。
int ungetch(int c) 將字元 c 放回鍵盤緩衝區。
char *cgets(char *buffer) 直接從控制檯讀取字串。
int cscanf(char *format, arg0,... argn) 直接從控制檯讀取格式化的值。
int putch(int c) 直接將字元寫入控制檯。
int cputs(const char *string) 直接將字串寫入控制檯。
int cprintf(const char *format, arg0,... argn) 格式化值並直接將其寫入控制檯。


1989 年以後的編譯器在名稱前加了一個 _,以符合 ANSI C 標準的要求。

[編輯 | 編輯原始碼]

參考文獻

[編輯 | 編輯原始碼]
  1. "MSDN 中的控制檯和埠 I/O".
  2. "MicroVGA conio 文字使用者介面庫".
  3. "DJGPP C 庫參考 - conio".
華夏公益教科書