这些天我在 Ubuntu 上工作。当我使用 gcc 编译我的 C 程序时,它给出的错误conio.h
不存在。我想使用clrscr()
和getch()
功能。你能告诉我这个头文件在linux中的替代品吗?
8 回答
该getch()
功能可以在curses.h
(库“curses”)中找到。同一个库提供了清除屏幕的功能。查看这些链接:
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() 等价于什么?
最后,请查看以下内容以获取更多详细信息和示例:
显然你没有尝试谷歌搜索。
没有直接的替代方案。
这篇博文: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]
在 G++ 编译器中,我们使用头文件system("clear")
中定义的函数stdlib.h
#include<iostream>
#include<stdlib.h>
int main() {
std::cout<<"Hello Aliens:";
system("clear");
}
我正在修改一些代码;安装 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);
}
我希望它对你有帮助。
问候。