在c中替换getch和clrscr()用于linux

时间:2012-08-06 07:11:58

标签: c linux

这些天我在Ubuntu上工作。当我使用gcc编译我的C程序时,它给出了错误conio.h不存在。 我想使用clrscr()getch()函数。 你能否告诉我这个头文件在linux中的替代品。

8 个答案:

答案 0 :(得分:3)

可以在getch()中找到curses.h函数(库" curses")。同一个库提供清除屏幕的功能。看看这些链接:

http://linux.die.net/man/3/getch

http://linux.die.net/man/3/erase

答案 1 :(得分:1)

system("clear");可以在 linux 中使用,而不是clrscr();

答案 2 :(得分:1)

# include <curses.h>

       int erase(void);
       int werase(WINDOW *win);
       int clear(void);
       int wclear(WINDOW *win);
       int clrtobot(void);
       int wclrtobot(WINDOW *win);
       int clrtoeol(void);
       int wclrtoeol(WINDOW *win);

DESCRIPTION
       The erase and werase routines copy blanks to every position in
       the window, clearing the screen.

我猜这个问题反复被低估,因为它意味着对基本C语言特性的理解不足和/或OP只是将代码复制/粘贴到编辑器/ IDE中。

同样,只需在代码中使用system("exit");

#include<stdlib.h>
main()
{
system("clear"); //clears the screen
} 

检查手册页显示:

SYSTEM(3)                                 Linux Programmer's Manual   SYSTEM(3)

NAME
       system - execute a shell command

SYNOPSIS
       #include <stdlib.h>

       int system(const char *command);

DESCRIPTION
       system() executes a command specified in command by calling /bin/sh -c 
command, and returns after the command has been completed.  
During execution of the command, SIGCHLD will be blocked, and SIGINT
and SIGQUIT will be ignored.

也可能是这个问题可能与以下内容重复:

最后,请查看以下内容以获取更多详细信息和示例:

答案 3 :(得分:0)

显然你没有尝试谷歌搜索。

没有直接的选择。

此博文:http://wesley.vidiqatch.org/code-snippets/alternative-for-getch-and-getche-on-linux/为您提供了getch()getche()

的替代方案

或者,您可以使用libncurses执行您想要的操作:http://tech.dir.groups.yahoo.com/group/linux/message/29221

答案 4 :(得分:0)

curses.h是conio.h的替代方案。 安装build-essentials并安装libncurses5-dev。

然后你可以使用这些功能。 [http://ubuntuforums.org/showthread.php?t=880601] [1]

答案 5 :(得分:0)

我正在修补一些代码;安装ncurses之后,我插入了这些代码:

#include <stdio.h>
#include <ncurses.h>

main ()
{

system ("clear");
getchar ();

}

答案 6 :(得分:0)

还有另一种方法可以通过C代码而不是系统调用来实现。

void clrscr(void) {
  fprintf(stdout, "\033[2J\033[0;0f");
  fflush(stdout);
}

我很久以前就找到了它,并且我已经成功地在raspbian上检查了它。

还有:

void gotoxy(int x, int y) {
  printf("%c[%d;%df",0x1B, y, x);
}

我希望它可以帮到你。

问候。

答案 7 :(得分:0)

在G ++编译器中,我们使用system("clear")头文件中定义的stdlib.h函数

#include<iostream>
#include<stdlib.h>

int main() {
  std::cout<<"Hello Aliens:";
  system("clear");
}