getch()是一个非标准函数,存在于conio.h头文件中,该文件主要由Turbo C等MS-DOS编译器使用。它不是C标准库或ISO C的一部分,也不是POSIX定义的。
像这些函数一样,getch()也从键盘读取单个字符。但是它不使用任何缓冲区,因此无需等待回车键即可立即返回输入的字符。
句法:
int getch(void);
参数:此方法不接受任何参数。
返回值:该方法返回按键的ASCII值。
例子:
// Example for getch() in C
#include
// Library where getch() is stored
#include
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()接受隐藏的密码
注意:下面的代码不会在Online编译器上运行,但是会在Turbo-IDE等MS-DOS编译器上运行。
// C code to illustrate working of
// getch() to accept hidden inputs
#include
#include // delay()
#include
#include
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的C基础课程》。