替换getch(),gotoxy(),delay(),clrscr()

时间:2011-04-17 11:06:47

标签: c++ c

我有一些我为Turbo C编译器编写的旧程序源代码。我对它们进行了更改,并希望在Linux和Windows的新编译器中重新编译它们。所以请告诉我什么是最佳替代函数

  

getch(),delay()/ sleep(),clrscr(),   gotoxy()

用于C和C ++。

3 个答案:

答案 0 :(得分:15)

查看ncurses库,了解与Unix兼容的系统。

答案 1 :(得分:7)

对于Windows系统:

最好是将程序编译为windows的控制台应用程序。

您可以直接将Windows API用于控制台窗口和控制台输出。 请查看MSDN:Windows Console functions

以下是给定功能的可能替代品:

  • getch():使用conio.h中的_getch()
  • delay()/ sleep():使用windows Sleep()函数
  • clrscr():使用FillConsoleOutputCharacter()和FillConsoleOutputAttribute()
  • 编写自己的clrscr()函数
  • gotoxy():使用SetConsoleCursorPosition()

答案 2 :(得分:2)

在类Unix系统上,您可以使用VT100转义码替换clrscr()和gotoxy()。 clrscr():

std::cout << "\033[2J" << std::flush;

有关gotoxy()的更多信息,请参阅http://www.termsys.demon.co.uk/vtansi.htm