gpt4 book ai didi

c++ - 从标准输入中捕获字符而无需等待按下回车键

转载 作者:IT老高 更新时间:2023-10-28 11:30:12 26 4
gpt4 key购买 nike

我永远不记得我是如何做到这一点的,因为它对我来说很少出现。但是在 C 或 C++ 中,从标准输入读取字符而不等待换行符(按 Enter)的最佳方法是什么。

理想情况下,它不会将输入字符回显到屏幕上。我只想在不影响控制台屏幕的情况下捕获击键。

最佳答案

这在纯 C++ 中以可移植的方式是不可能的,因为它过多地依赖于可能与 stdin 连接的终端。 (它们通常是行缓冲的)。但是,您可以为此使用库:

  1. conio 可用于 Windows 编译器。使用 _getch()功能为您提供一个字符,而无需等待 Enter 键。我不是一个经常使用 Windows 的开发人员,但我见过我的同学只包含 <conio.h>并使用它。见 conio.h 在维基百科。它列出了getch() ,它在 Visual C++ 中被声明为弃用。

  2. 可用于 Linux 的诅咒。兼容的 curses 实现也可用于 Windows。它还有一个 getch()功能。 (尝试 man getch 查看其手册页)。见 Curses在维基百科。

如果您的目标是跨平台兼容性,我建议您使用 curses。也就是说,我确信您可以使用某些功能来关闭行缓冲(我相信这称为“原始模式”,而不是“熟模式” - 查看 man stty )。如果我没记错的话,Curses 会以便携的方式为你处理。

关于c++ - 从标准输入中捕获字符而无需等待按下回车键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/421860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com