用于linux的getchar和clrscr()的c子句

我现在在Ubuntu上工作。 当我编译我的C程序使用GCC,它是给错误conio.h不存在。 我想使用clrscr()getch()函数。 你能告诉我这个头文件在Linux中的替代品。

Solutions Collecting From Web of "用于linux的getchar和clrscr()的c子句"

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

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

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

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

 # 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. 

这个问题也可能是以下情况的重复:

  • 如何在Linux中实现C的getch()函数?
  • 为什么我不能在Linux上找到<conio.h>?
  • Turbo C函数`clrscr`和`cprintf`的GNU / Linux替换
  • 在C和C ++中使用函数clrscr
  • “未定义的clrscr();”
  • 替代getch(),gotoxy(),delay(),clrscr()
  • 什么等同于Linux中的getch()&getche()?

最后,看看下面的更多细节和例子:

显然你没有尝试Google搜索。

没有直接的选择。

这篇博文: 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

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

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

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

 #include <stdio.h> #include <ncurses.h> main () { system ("clear"); getchar (); } 

还有另外一种方法可以通过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); } 

我希望它可以帮助你。

问候。