getch()是非标准函数,存在于conio.h头文件中,该文件通常由Turbo C等MS-DOS编译器使用。它不是C标准库或ISO C的一部分,也不由POSIX定义。
像这些函数一样,getch()也从键盘读取单个字符。但是它不使用任何缓冲区,因此无需等待回车键即可立即返回输入的字符。
用法:
int getch(void);
参数:此方法不接受任何参数。
返回值:此方法返回按键的ASCII值。
例:
// Example for getch() in C
#include <stdio.h>
// Library where getch() is stored
#include <conio.h>
int main()
{
printf("%c", getch());
return 0;
}
Input: g (Without enter key) Output: Program terminates immediately. But when you use DOS shell in Turbo C, it shows a single g, i.e., 'g'
关于getch()方法的要点:
- getch()方法会暂停输出控制台,直到按下一个键为止。
- 它不使用任何缓冲区来存储输入字符。
- 输入的字符将立即返回,而无需等待回车键。
- 输入的字符不会显示在控制台上。
- getch()方法可用于接受隐藏的输入,例如密码,ATM针号等。
示例:使用getch()接受隐藏的密码
注意:以下代码不会在在线编译器上运行,但会在Turbo IDE等MS-DOS编译器上运行。
// C code to illustrate working of
// getch() to accept hidden inputs
#include <conio.h>
#include <dos.h> // delay()
#include <stdio.h>
#include <string.h>
void main()
{
// Taking the password of 8 characters
char pwd[9];
int i;
// To clear the screen
clrscr();
printf("Enter Password:");
for (i = 0; i < 8; i++) {
// Get the hidden input
// using getch() method
pwd[i] = getch();
// Print * to show that
// a character is entered
printf("*");
}
pwd[i] = '\0';
printf("\n");
// Now the hidden input is stored in pwd[]
// So any operation can be done on it
// Here we are just printing
printf("Entered password:");
for (i = 0; pwd[i] != '\0'; i++)
printf("%c", pwd[i]);
// Now the console will wait
// for a key to be pressed
getch();
}
输出:
Abcd1234
输出:
Enter Password:******** Entered password:Abcd1234
相关用法
- C++ btowc()用法及代码示例
- C++ wcsspn()用法及代码示例
- C语言 fopen()用法及代码示例
- C语言 getdate()、setdate()用法及代码示例
- C++ mbrtoc32()用法及代码示例
- C++ mbrtoc16()用法及代码示例
- C++ wmemset()用法及代码示例
注:本文由纯净天空筛选整理自AnshulVaidya大神的英文原创作品 getch() function in C with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。