首页 > 编程笔记

C语言getch():无回显输入一个字符

getch() 不属于 C语言标准库提供的函数,通常在 Windows 环境下使用,定义在<conio.h>头文件中。

getch() 用于读取用户输入的一个字符,且用户输入一个字符之后不需要再按回车键,getch() 会立即读取。getch() 的另一个特别之处是它没有回显,即用户输入的字符不会在屏幕上显示。

回显在大部分情况下是有必要的,它能够与用户及时交互,让用户清楚地看到自己输入的内容。但在某些特殊情况下,我们却不希望有回显,例如输入密码,有回显是非常危险的,容易被偷窥。

getch() 函数的原型如下:

int getch(void);

参数

无,getch() 函数不接受任何参数,

返回值

返回读取到的字符。

【实例】以下是一个使用 C语言 getch() 函数的样例,用于显示用户输入的字符,直到按下 'q' 键为止:
#include <conio.h>
#include <stdio.h>

int main() {
  char ch;
  printf("Type characters, or press 'q' to quit:\n");

  do {
    ch = getch();
    printf("You typed: %c\n", ch);
  } while (ch != 'q');

  printf("Exiting program.\n");
  return 0;
}
输出结果为:

Type characters, or press 'q' to quit:
You typed: a
You typed: s
You typed: d
You typed: q
Exiting program.

在这个示例中,getch()会立即读取用户的按键,用户不需要按回车键,输入的字符也不会显示在屏幕上。然后,程序会打印出字符,直到用户按下'q'键为止。

推荐阅读