在C/C++中使用getch()函数
在本文中,我们将介绍如何在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"。