C语言的其他输入函数及妙用
主要包括getche()、getch()字符输入函数,用于获取一个字符。
这两个函数主要区别在控制台上有无回显输入。(注:均无需按下回车键即可触发)
1.getch() 无回显输入
示例:
//#include <conio.h>
char c2 = _getch();//无回显,无需按下回车键
putchar(c2);
2.getche() 有回显输入
示例:
//#include <conio.h>
char c2 = _getche();//有回显,无需按下回车键
putchar(c2);
3.妙用
在控制台游戏中,通常执行某一游戏时,为确保游戏体验,需保持不卡顿,即畅通。而面临的问题在操作游戏对象时,即键盘输入字符时,不管是通用的getchar()、gets()、scanf()甚至以上介绍的getche()、getch(),均会在输入时,产生阻塞,导致游戏卡顿。
此时引用函数kbhit(),主要用途是监听键盘输入(按下),按下任意键返回1,否则返回0。在再结合以上介绍的两个特殊输入函数getche()、getch()。可以实现良好的用户体验,不产生阻塞(卡顿)。
示例如下:
//#include <conio.h>
while (1)
{
//_kbhit() 如果有键盘按下则返回1 否则返回0
if (_kbhit())
{
char a = _getch(); // 阻塞(卡顿)
putchar(a);
}
else {
printf("正常执行\n");
}
Sleep(500);
}