跳转到内容

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".
华夏公益教科书