linux里面没有conio.h库,所以我用的是自己搞的getch.h库
时间: 2024-04-02 09:35:35 浏览: 106
是的,你说得没错。conio.h 是 Windows 系统下的一个头文件,它提供了一些控制台输入输出的函数,比如 getch()、getche() 等。而在 Linux 系统下,你可以通过一些其他的方式来实现类似的功能,比如使用 curses 库或者 termios 库。而你自己编写的 getch.h 库实现了类似的功能,可以在 Linux 系统下使用。
相关问题
linux中运行c找不到conio.h,linux中无 conio.h的解决办法
`conio.h` 是 Windows 平台特有的头文件,Linux 平台上是没有这个头文件的。如果您的 C 代码中使用了 `conio.h`,在 Linux 平台上就会出现找不到头文件的错误。
`conio.h` 头文件主要提供了在控制台中进行文本输入和输出的一些函数,比如 `getch()`、`putch()` 等。在 Linux 平台上,这些功能可以通过 `ncurses` 库来实现。
下面是一个简单的示例代码,演示如何使用 `ncurses` 库在 Linux 平台上实现类似于 Windows 平台上 `conio.h` 的功能:
```c
#include <ncurses.h>
int main() {
initscr(); // 初始化 ncurses 库
while (1) {
int ch = getch(); // 获取用户输入的键值
// 在屏幕上输出用户输入的键值
mvprintw(0, 0, "You pressed: %d", ch);
refresh();
if (ch == 27) { // 如果用户按下 ESC 键,退出程序
break;
}
}
endwin(); // 关闭 ncurses 库
return 0;
}
```
在上面的代码中,我们使用 `initscr()` 函数来初始化 ncurses 库,在 `while` 循环中使用 `getch()` 函数获取用户输入的键值,并使用 `mvprintw()` 函数在屏幕上输出用户输入的键值。最后,使用 `endwin()` 函数关闭 ncurses 库。
需要注意的是,`ncurses` 库使用起来比较复杂,需要熟悉一些特定的函数和概念。如果您需要在 Linux 平台上实现类似于 `conio.h` 的功能,建议先学习一下 `ncurses` 库的使用。
不用conio.h和windows.h实现getch函数
可以使用标准库中的头文件<termios.h>和<unistd.h>来实现getch函数。具体实现方法可以参考以下代码:
#include <termios.h>
#include <unistd.h>
int getch() {
struct termios oldt, newt;
int ch;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}
这个函数可以在Linux和Mac OS X系统上使用,可以实现在终端中读取单个字符的功能。
阅读全文