当前位置: 首页>>代码示例>>用法及示例精选>>正文


C语言 getch()用法及代码示例

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

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



相关用法

注:本文由纯净天空筛选整理自AnshulVaidya大神的英文原创作品 getch() function in C with Examples。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。