【发布时间】:2020-05-14 21:02:49
【问题描述】:
在 c/c++ 语言中,conio.h 头文件中有一个名为 getch() 的函数,它允许您只输入 1 个字符并且不会在屏幕上回显它,一旦输入该字符,它自动转到下一行代码,无需回车。
我尝试在 dart 中使用 stdin.readByteSync(),但它并没有提供 getch() 在 c/c++ 中提供的功能。我想知道是否有办法在 dart 中创建函数或方法,其行为方式与 getch() 在 c/c++ 中的行为方式相同。谢谢。
【问题讨论】:
-
首先,没有“C/C++”语言,有两种非常不同的语言C和C++。也没有标准的 C 或 C++ 头文件
conio.h,它最初是一个 DOS 特定的头文件,仅在 Windows 中仍然存在。 -
你错了。在 C++ 标准中没有名为
<conio.h>的头文件。这是一个特定于操作系统的头文件,它提供仅特定于您的操作系统的功能。 C++ 标准中没有类似的东西。 -
为了在不按回车的情况下读取密钥,您需要使用操作系统特定的 API。如果您使用的是 GUI 系统,您可能能够响应有关按键或释放的消息。当键状态改变时,一些操作系统将允许回调函数。一切都取决于您的操作系统,也许还有框架。
-
不管
getch()和conio.h的非标准性如何,您可以查看Flutter 工具(用Dart 编写)如何处理在按下r时触发热重载。