conio.h从Windows中丢失

我通常使用VS,但第一次尝试cygwin。 我使用的是Windows 7,但使用gcc编译hello world程序,它说“致命错误:conio.h:没有这样的文件或目录”。

我正在使用Windows 7,似乎conio.h从我的系统中丢失。 有人可以告诉我如何解决这个问题。

谢谢!!

在Cygwin中不存在任何这样的名为conio.h头文件! 此外,你不需要它,因为它会自动保存屏幕,而不使用getch()clrscr()你在Cygwin中有system("clear")

conio不是标准库的一部分,你不能指望它是跨平台的,甚至在同一个平台上的编译器之间。

作为非标准,Borland和Microsoft都使用conio这个名字,用于不同API的库 – 微软的规模要小得多。 所以出于这个原因,你可能会避免它的可移植性。

Cygwin是一个在Windows上构建和运行POSIX代码的POSIX API层和工具链。 提供的库独立于Visual Studio提供的库。

有许多解决方案,包括:

  • 使用另一个控制台I / O库,例如ncurses。
  • 对于Linux使用conio源代码实现(如使用ncurses并实现Borland的API)。

如果你有很多使用conio的遗留代码,第二个解决方案可能是有用的,但如果你只是想阻止一个控制台窗口关闭,则是过度的。 为此,你可以在任何情况下使用getchar() ,并接受你将不得不按下输入,而不是任何键。

如果您使用Cygwin只是为了能够在Windows上使用GCC,那么最好使用MinGW / GCC。 这使用微软的C运行时而不是GNU,而使用Win32 API而不是POSIX。

conio.h是由Borland的Turbo C编译器提供的一个非标准头文件,它是一个不合规的C编译器本身。 Cygwin是类似unix的环境的Windows模拟,没有它(事实上,我不知道任何其他编译器提供了conio.h )。

 Can someone please tell me how to resolve this issue. 

解决这个问题的最好方法是不要使用它:)

相反,你可以使用ncurses,如果你想要的东西提供了相似的功能,并编译:

 gcc test.c -lncurses