我知道它与struct termios有关但我无法通过阅读手册页来解决这个问题。我的目标是,无论何时按下键盘上的按钮,它都会被读取而不会输入,它将不会打印在我的程序屏幕上。显然,这两者对于创建游戏都很重要。谢谢!
答案 0 :(得分:1)
以下是基于this post的示例:
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
int main(int argc, char** argv)
{
struct termios old, new;
tcgetattr(STDIN_FILENO, &old); // get current settings
new = old; // create a backup
new.c_lflag &= ~(ICANON | ECHO); // disable line buffering and feedback
tcsetattr(STDIN_FILENO, TCSANOW, &new); // set our new config
printf("Reading 5 characters without local echo...\n");
for (int i = 0; i < 5; i++)
{
char x = getchar();
printf("[%c] ", x);
}
printf("\nRestoring terminal config\n");
tcsetattr(STDIN_FILENO, TCSANOW, &old);
return 0;
}