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

在这篇文章中,我们将讨论在C/C++中使用getch()函数。

如果你想从键盘读取一个字符输入,getch() 函数非常有用。

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

让我们来看一下使用这个功能,并用几个例子来说明。


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

这个函数从标准输入(stdin)中获取一个单一字符,并返回一个整数。

这是头文件的一部分,所以你必须将它包含在你的程序中。

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

这个函数不接受任何参数。

在这里,getch()返回从标准输入读取的字符的ASCII值。

例如,如果我们将字符’0’作为输入,它会返回字符’0’的ASCII值,即49。

现在,在C / C++中,我们可以直接将字符转换为整数。因此,强制类型转换时,ASCII值49将被转换为字符值’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;
}

产出

Received 5 character Input: Hello

确实,当我输入“你好”时,我确实正确地得到了输出。

请注意,我的输出字符串中包含6个字符,因为我们需要保留一个字节给‘\0’。所以op为“Hello\0”。


结论

在这篇文章中,我们学习了如何使用C/C++中的getch()函数从键盘接收字符输入。

如果你想了解更多关于C和C++的内容,可以浏览我们的C编程教程部分!

参考资料

  • Linux Manual Page on getch() function in C

广告
将在 10 秒后关闭
bannerAds