因为getch()函数不回显,并在终端输入不需要回车。所以可在很多程序灵活运用
以下为摘录网络上的代码:
#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>
int getch();
void press_key();
int main()
{
printf("Hello world!\n");
press_key();
return 0;
}
void press_key()
{
printf("Press any key to continue...\n");
getch();
}
int getch()
{
struct termios tm, tm_old;
int fd = STDIN_FILENO,c;
if (tcgetattr(fd, &tm) < 0)
{
return -1;
}
tm_old = tm;
cfmakeraw(&tm);
if (tcsetattr(fd, TCSANOW, &tm) < 0)
{
return -1;
}
c = fgetc(stdin);
if (tcsetattr(fd,TCSANOW,&tm_old) < 0)
{
return -1;
}
return c;
}
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>
int getch();
void press_key();
int main()
{
printf("Hello world!\n");
press_key();
return 0;
}
void press_key()
{
printf("Press any key to continue...\n");
getch();
}
int getch()
{
struct termios tm, tm_old;
int fd = STDIN_FILENO,c;
if (tcgetattr(fd, &tm) < 0)
{
return -1;
}
tm_old = tm;
cfmakeraw(&tm);
if (tcsetattr(fd, TCSANOW, &tm) < 0)
{
return -1;
}
c = fgetc(stdin);
if (tcsetattr(fd,TCSANOW,&tm_old) < 0)
{
return -1;
}
return c;
}
