在C/C++中使用getch()函数

时间:2020-02-23 14:32:04  来源:igfitidea点击:

在本文中,我们将介绍如何在C/C++中使用getch()函数。

如果要从键盘读取字符输入,getch()函数将非常有用。

虽然这不是C标准的一部分,但它仍然是POSIX C函数。
因此,我们仍然可以在Windows/Linux/Mac上使用此功能。

让我们通过一些示例来看看如何使用此函数。

C/C++中getch()的基本语法

该函数从标准输入(stdin)中接收单个字符,并返回一个整数。

它作为<conio.h>头文件的一部分存在,因此您必须将其包括在程序中。

#include <conio.h>
int getch();

此函数不带任何参数。

其中" getch()"返回从" stdin"读取的字符的ASCII值。

例如,如果我们输入字符" 0",它将返回ASCII值" 0",即49。

现在,在C/C++中,我们可以将字符直接转换为整数。
因此,在类型转换中,ASCII值49将强制转换为'char'值'0'!

现在来看一些示例。

在C/C++中使用getch()–一些示例

举一个简单的例子,让我们首先看一下读取单个字符。

#include <stdio.h>
#include <conio.h>

int main() {
  char ch = getch();
  printf("Received Input: %c\n", ch);
  return 0;
}

示例输出

Received Input: a

在键盘上输入" a"后,我得到了此输出。
现在来看一个程序,该程序等待键盘上的5个字符。

注意," getch()"将不会显示键盘输入。
因此,当您键入输入内容时,光标将不会显示输入内容。

仅在获得全部5个字符后才显示完整的字符串

#include <stdio.h>
#include <conio.h>

int main() {
// Set op = {0, 0, 0, 0, 0, 0} = '\0\0\0\0\0\0' string
char op[6] = {0};
for (int i=0; i<5; i++) {
op[i] = getch();
}
printf("Received 5 character Input: %s\n", op);
return 0;
}

确实,当我键入" Hello"时,我确实正确获得了输出。

请注意,我的输出字符串中有6个字符,因为我们需要为" \ 0"保留1个字节。
因此," op"是" Hello \ 0"。