1

大家好,我需要帮助,请我尝试编译以下代码

int ctr=0;
clrscr();
while(ctr!=1)switch(getch()){
              case 77: printf("Right");
              break;

当我尝试时我有这个错误,当我尝试添加时我有错误文件不存在我该怎么做才能在我的代码中使用 getch

test.c:618:1: attention : implicit declaration of function ‘clrscr’ [-Wimplicit-function-declaration]
test.c:619:1: attention : implicit declaration of function ‘getch’ [-Wimplicit-function-declaration]

注意:我在 ubuntu 13.04 工作

4

3 回答 3

2

这些函数都在 中声明conio.h,这不是任何 C 标准的一部分。它们是在许多基于 DOS 的编译器中按传统实现的。没有独立于平台的替代品clrscr()-- 您可以使用它system("clear")来代替。对于getch(),最接近的单函数替换是cin.get()在 C++ 中。更好的总体策略是使用适度可移植的curses库重写代码,该库包括所有功能conio.h以及更多功能。

于 2013-11-04T13:59:36.870 回答
0

函数 getch() 是“curses”库的一部分(参见头文件 curses.h)。clrscr() 也可以用这个库中的 erase() 函数替换。链接到标头 curses.h

于 2013-11-04T14:01:43.247 回答
0

getch() 函数包含在 conio.h 库中,但 conio.h 标准库在 linux 中不可用,我们可以使用 curses.h 头文件。curses.h 包含屏幕处理和优化功能的定义。

curses.h 文档

http://pubs.opengroup.org/onlinepubs/007908775/xcurses/curses.h.html

1.在linux中安装curses.h

//对于基于debian的linux发行版

sudo apt install -y libncurses5-dev libncursesw5-dev

//对于fedora

sudo yum 安装 ncurses-devel

2.编译程序(我的.c文件名是getchDemo)

g++ -o 输出文件 getchDemo.c -lncurses

3.运行程序

。/输出文件

带输出的示例程序

于 2019-01-29T09:00:53.157 回答