C语言字符输入相关函数

来源:互联网 发布:sql server 索引维护 编辑:程序博客网 时间:2024/04/19 08:12
下面介绍几个和字符相关的常用函数。

1、getch()函数:

(假设已经声明了char c)

在大学所用的教材中,字符输入一般是用scanf("%c",&c),或者c=getchar()。

但,实际上,在做一些控制台应用时,最常用的确是c=getch()。

那么getch()与getchar()到底有什么区别呢?

两个函数都是从控制台读取一个字符。

我们在使用getchar()时,在控制台无论输入多少个字符,然后敲击回车后,输入的第一个字符将存储到字符c中去,剩下的字符留在缓存区中。我们在屏幕上完全能够看到我们所输入的字符是什么。

而getch()却不是这样,无需我们敲击回车,函数直接读取我们输入的键值。当我们按一个键,就会马上返回一个ascⅡ码。而且我们输入的这个值是不会在屏幕上显示出来的。getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。(注意:getch()函数并没有被包含在<stdio.h>头文件中,而是被包含在<conio.h>,所以在程序开端,要加上#include <conio.h>)

下面看一个简单程序和结果

#include<stdio.h>
#include<conio.h>
int main()
{
  char c;
  printf("***%c",c=getch());
  getch();
  return 0;
 }

最后一个getch()是用来调试程序的。

我的输入值是4。
输出结果是:***4
在输入的时候,输入值根本没有显示到屏幕上,否则在***前面会有输入值4.

2、kbhit()函数

功 能及返回值: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0

包含头文件: include <conio.h>

用法举例:

#include<stdio.h>
#include<conio.h>
int main()
{
  char c;
  while(1)
  {
  printf("***\n");
  if(kbhit())
  {
  c=getch();
  printf("%c",c);
  getch(); //调试程序,观察结果用。
  }
  }
  return 0;
 }

这个简单程序,是不断地输出字符串“***”,当检测到当前键盘输入时就会调用if { } 中的语句。而且这个值会输入到getch()函数中。这样在做一个小应用时,程序在不断地运行,你想要用键盘来输入命令就可以用这个函数。

顺便就说几个常用的ascⅡ码。

  if(kbhit())
{
c=getch();
//以下代码对应键盘上的↑↓←→四个键
if(c==-32)
{
c=getch();
switch(c)
{
case 72:方向键的向上键();break;
case 80:方向键的向下键();break;
case 75:方向键的向左键();break;
case 77:方向键的向右键();break;
}
}
else //以下代码对应键盘上的"spacebar""esc""the Entey key"七个键
{
switch(c)
{
case 32:空格键();break;
case 27:键盘左上角的退出键();break;
case 13:回车键();break;
}
}
}
以上,文字加空格的都是与按键相对应的,自己写的函数。
原创粉丝点击