0

我在编写我的蛇游戏程序时遇到了一些问题。我需要让游戏在 linux 和 windows 上运行。我发现了一些主题如何使用#ifdef Windows 等在 linux 和 windows 上清除屏幕。问题是我需要使用 C89 标准,我不确定 system("cls") 是否在 C89 中。你能帮我找到 C89 函数来清除屏幕,并告诉我一些关于 linux 上的 kbhit() 函数的信息吗?对不起我的英语,谢谢你的帮助。

4

2 回答 2

2

C89 没有终端处理功能。相反,您应该使用操作系统特定的功能。所以你需要有一个源文件,一个只用于 windows 功能的源文件,另一个用于 linux 的源文件。另一种选择是使用跨平台库。我会为此任务选择 ncurses:

http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/

它适用于任何 unix 系统,包括 linux 和 Mac OS。对于 windows 版本,请参见:

ncurses可用于Windows吗?

使用 ncurses,您可以使用诸如 erase() 和 clear() 之类的函数来清除屏幕。

于 2013-06-16T00:12:25.070 回答
0

在包括 Linux 和 macOS 在内的类 Unix 系统上,您可以使用 ncurses 库(POSIX API)。在 Windows(甚至 Linux 或 macOS)的情况下,以下代码将适用于任何系统上的 ANSI 终端。

printf("\033[2J\033[H");
/* or */
printf("\033[0;0f");
于 2016-12-06T07:18:01.723 回答