getch()getchar() getche()函数详解

关于c语言中的getch(),getchar() getche()函数肯定十分困扰大家,今天将他们整理和大家一起分享
getchar()
头文件:stdio.h
  功  能:从I/O流中读字符
  原  型:int getchar(void);
注意:getchar()被调用时,程序就等着用户按键,所有的字符都会保留在键盘缓存区中(回车字符也放在缓存区中,按下回车时候getchar()函数去缓冲区中一个个读取字符,回车也算哦),等待后续getchar调用读取。也就是说,后续的getchar调用是不会等待用户按键,而直接读取缓冲区中的字符  看下例子:
  #include<stdio.h>
  #include<conio.h>   /*此头文件有些系统或者编译器不支持哦*/
  int main()
    {
          char c;
          while ((c=getchar())!='\n')   /*每个getchar()依次读入一个字符*/
          printf("%c",c);    /*按照原样输出*/
          getch();       /*等待按任一健*/
	return 0;
     }
输入:qwerty按下回车键
输出如下:qwerty press any.....
解释如下:先将这些字符存入缓冲区里面,遇到回车后getchar()读,依次输出qwerty,getchar()读到回车后就循环终止了.....

getch()
  函数名:getch():
  头文件:conio.h
  功  能:从控制台读取一个字符,但不显示在屏幕上
  原  型:int getch(void)
  返回值:读取的字符
注意:
getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1. 输入的字符不会回显在屏幕上 .getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行.每摁一次键 就调用一次getch(),直到遇回车结束。如果在规定次数前结束,系统里面  并 没有存入结束符 ,我们要手动地在他末尾添加一个‘\0’字符
 getche
    头文件:conio.h
  功  能:从控制台取字符(带回显)
  用  法:int getche(void);
    (1) getch()和getche()函数
      这两个函数都是从键盘上读入一个字符。其调用格式为:
      getch();
      getche();
      两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche()函数却将读入的字符回显到显示屏幕上(getche()读入之后不管按不按回车立即回显)。
    利用回显和不回显的特点, 这两个函数经常用于交互输入的过程中完成暂停等功能。
这是一个比较经典的问题,仔细按照自己该表就可以理解这些函数了
 #include<stdio.h>
 #include<conio.h>
  int main()
    {
    int i,k=0; 
	char tmp[20];  
	for ( i=0 ; i<20; i++ ) 
	{  
		tmp[i] = getch();   //关键点1 //
	    tmp[i]=getchar();  
	        //printf ( "%d=[%c]\n",i,tmp [i] );  
			if ( tmp[i]=='\r' )
			{  
				tmp [i] = '\0' ; //关键点2
				break ;
			} 
			putchar ( '*' ) ; 
	}
	printf("\n");
	while(tmp[k]!='\0')
		printf("%c",tmp[k++]);
	return 0;
  }

你可能感兴趣的:(getchar函数,getch函数,getche函数)