C 程式設計/MS Windows 參考/conio.h
外觀
< C 程式設計 | MS Windows 參考
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 標準的要求。
- Digital Mars 的文件
- IO 常見問題解答 - 對非標準控制檯 IO 的解釋和建議
- 用於 MinGW/Dev-C++ 的 Borland 風格 CONIO 實現
- 獲取原始鍵盤輸入的方法列表