#include #include static struct termios old, new;/* Initialize new terminal i/o settings */void initTermios(int echo) {
tcgetattr(0, &old); /* grab old terminal i/o settings */
new = old; /* make new settings same as old settings */
new.c_lflag &= ~ICANON; /* disable buffered i/o */
if (echo) {
new.c_lflag |= ECHO; /* set echo mode */
} else {
new.c_lflag &= ~ECHO; /* set no echo mode */
}
tcsetattr(0, TCSANOW, &new); /* use these new terminal i/o settings now */}/* Restore old terminal i/o settings */void resetTermios(void) {
tcsetattr(0, TCSANOW, &old);}/* Read 1 character - echo defines echo mode */char getch_(int echo) {
char ch;
initTermios(echo);
ch = getchar();
resetTermios();
return ch;}/* Read 1 character without echo */char getch(void) {
return getch_(0);}/* Read 1 character with echo */char getche(void) {
return getch_(1);}/* Let's test it out */int main(void) {
char c;
printf("(getche example) please type a letter: ");
c = getche();
printf("\nYou typed: %c\n", c);
printf("(getch example) please type a letter...");
c = getch();
printf("\nYou typed: %c\n", c);
return 0;}
只需复制这些函数并使用它。我很久以前就在谷歌上找到了这个片段,我保存了它,最后我为你打开了很长一段时间,希望它能帮助你!谢谢