在本文中,我们将介绍如何在C/C++中使用getch()函数。
如果要读取从键盘输入的字符,则Getch()函数非常有用。
虽然这不是C标准的一部分,但它仍然是一个POSIX C函数。因此,我们仍然可以在Windows/Linux/Mac上使用此功能。
让我们通过几个例子来看看如何使用这个函数。
Getch()在C/C++中的基本语法
此函数从标准输入(stdin
)中接受单个字符,并返回一个整数。
这是作为头文件的一部分<conio.h>,所以你必须在程序中包含它。
1#include <conio.h>
2int getch();
此函数不带任何参数。
这里,getch()
返回从stdin
读取的字符的ASCII值。
例如,如果我们输入字符'0',它将返回ASCII值'0',即49。
现在,在C/C++中,我们可以直接将字符转换为整数。因此,在类型转换时,ASCII值49将被转换为‘0’的char
值!
现在让我们看一些例子。
在C/C++中使用Getch()-一些示例
作为一个简单的例子,让我们首先来看一下如何阅读单个字符。
1#include <stdio.h>
2#include <conio.h>
3
4int main() {
5 char ch = getch();
6 printf("Received Input: %c\n", ch);
7 return 0;
8}
示例输出
1Received Input: a
在我的键盘上输入‘a’之后,我得到了这个输出。现在让我们来看一个程序,它等待来自键盘的5个字符。
注意 getch()
将 ** 不** 显示键盘输入。因此,当您键入输入时,光标不会显示输入。
让我们仅在获得全部5个字符后才显示完整的字符串
1#include <stdio.h>
2#include <conio.h>
3
4int main() {
5 // Set op = {0, 0, 0, 0, 0, 0} = '\0\0\0\0\0\0' string
6 char op[6] = {0};
7 for (int i=0; i<5; i++) {
8 op[i] = getch();
9 }
10 printf("Received 5 character Input: %s\n", op);
11 return 0;
12}
输出
1Received 5 character Input: Hello
事实上,当我输入Hello
时,我确实得到了正确的输出。
注意,我的输出字符串中有6个字符,因为我们需要为‘\0’保留1个字节。所以op
是Hello\0
。
结论
在本文中,我们了解了如何在C/C++中使用Getch()函数从键盘接收字符输入。
有关C和C++的更多内容,请阅读我们关于C编程的教程部分!
参考文献
- C++Getch()函数的LINUX手册页