为什么我在Linux上找不到<conio.h>?

jan*_*iks 64 c linux gcc

可能重复:
如何在Linux中实现C的getch()函数?

MS-DOS Linuxconio.h头文件的等效版本是什么?

有没有办法取代它的功能?例如getch()

我正在使用gcc和文本编辑器Geany来编译C代码.

San*_*raj 89

conio.hC旧的MS-DOS编译器中用于创建文本用户界面的头文件.针对非DOS操作系统的编译器(如Linux,Win32和OS/2)提供了这些功能的不同实现.

#include <curses.h>将为您提供几乎所有功能conio.h

nucurses需要首先安装

在基于deb的Distros使用

sudo apt-get install libncurses5-dev libncursesw5-dev

并在基于rpm的发行版中使用

sudo yum install ncurses-devel ncurses

对于一getch()类函数,您可以尝试这个

  • 我收到错误'致命错误:curses.h:没有这样的文件或目录'我该怎么办? (8认同)
  • @kanojesumit这意味着没有安装curses库.它不是标准库.您需要在线找到它(例如Ncurses是一个免费的GPL实现). (2认同)

kar*_*lip 22

最初的conio.h由Borland实现,因此它不是C标准库的一部分,也不是由POSIX定义的.

但这是Linux的一个实现,它使用ncurses来完成这项工作.


Ott*_*ana 7

那是因为它不存在,因为它绑定到 Windows。

改用标准函数<stdio.h>,例如 getc

如果您想编写基于控制台的 GUI,建议的 ncurses 库很好,但我认为这不是您想要的。


Ant*_*ant 6

具有类似功能的流行 Linux 库是ncurses