[笔记]C语言中关于getch()

来源:互联网 发布:java输出数组全部元素 编辑:程序博客网 时间:2024/06/06 02:34

getch()函数是无回显的从控制台取得一个字符。以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,即任意键继续效果。

#include <stdio.h>#include <conio.h>int main(){int i ;i = getch();printf("press any key to continue\n");printf("%d\n", i);return 0;}


Windows下getch()在conio.h的头文件中,但conio.h不是标准库文件,C standard library,ISO C 和POSIX标准中均没有定义。固然Linux系统中会没有这个头文件,网上说在curses.h,然后下载一个库,但弄了半天也没成功取得,从网上找到了一个方法实现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;}


 

直接可以这样用:

 

/****************************************************************** *描述:实现任意键继续 *参数:void *返回值:void*******************************************************************/void press_key(){   printf("任意键继续...\n");   getch();}

 

头文件

#include <stdio.h>#include <stdlib.h>#include <termios.h>#include <unistd.h>


 

转载请注明:http://blog.csdn.net/qduningning/article/details/7879923

原创粉丝点击