如何在不按ENTER和不使用getch()或getche()的情况下读取C++中的字符
How do I read character in C++ without pressing ENTER and without getch() or getche()?
在C中,我可以使用getch()来获取输入,而无需用户按enter键C++中是否有一个标准函数可以执行getch()的函数我不想使用conio.h或其他特定于平台的库。
while (choice!='q')
{
cout << "Enter a six digit number(0 to 999999)";
cin >> input;
start.controller(input);
cout << "Press r to repeatnPress q to quit";
cin >> choice;
}
我只想重复这个过程,直到用户按下q。现在用户必须按下ENTER键。
否。标准C++库不包括任何类型的终端管理。它甚至不认为您的终端除了线路之外还有任何输入功能。您需要一个库或代码来了解您的特定终端是如何工作的。
这在一定程度上被Marshall Cline:的C++常见问题解答所涵盖
[15.17]我如何判断在用户按下ENTER键?
这不是一个标准的C++特性--C++甚至不需要您的系统有一个键盘!。这意味着每个操作系统和供应商都会有点不同。
有关详细信息,请阅读编译器附带的文档在您的特定安装上。
(顺便说一句,UNIX上的过程通常有两个步骤:将终端设置为单字符模式,然后使用select()或poll()来测试是否按下了某个键。你也许可以适应代码。)
C++标准还规定了§1.9[介绍执行]:
1本国际标准中的语义描述定义了参数化的不确定性抽象机。这个国际标准对一致性的结构没有要求实现。特别是,他们不需要复制或模仿抽象机器的结构。相反,一致性实施被要求(仅)模仿抽象的可观察行为机器,如下所述5
8对一致性实施的最低要求是:
nbsp mdash[..]
nbsp mdash;交互式设备的输入和输出动态应以这样一种方式进行,即在程序等待输入之前实际交付提示输出交互式设备的构成是由实现定义的
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 无法找到/读取配置文件.conf-FileIOException
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++将文本文件中的数据读取到结构数组中
- 正在将csv文件读取为双精度矢量
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 为什么在读取文件大小时文件IO速度会发生变化
- 正在读取二进制文件(is_open)
- 如何在c++中从文本文件中逐行读取整数
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 独立读取-修改-写入顺序
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 如何在不按ENTER和不使用getch()或getche()的情况下读取C++中的字符