📜  C中的getch()函数与示例

📅  最后修改于: 2021-05-25 19:07:40             🧑  作者: Mango

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()方法的要点:

  1. getch()方法会暂停输出控制台,直到按下一个键为止。
  2. 它不使用任何缓冲区来存储输入字符。
  3. 输入的字符将立即返回,而无需等待回车键。
  4. 输入的字符不会显示在控制台上。
  5. 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基础课程》。