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

在本文中,我们将介绍如何在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个字节。所以opHello\0


结论

在本文中,我们了解了如何在C/C++中使用Getch()函数从键盘接收字符输入。

有关C和C++的更多内容,请阅读我们关于C编程的教程部分

参考文献


Published At
Categories with 技术
Tagged with
comments powered by Disqus