使用Enter继续前进并ESC退出C
using enter to continue and esc to exit C++
我是新手,如果按下ESC,请按ESS进行按下,并尝试继续。实际上只是要求道路上的知识,对于我目前正在编写的程序并不是完全必要的。
#include <iostream>
#include <iomanip>
void StartMessage(char cont)
{
while (cont != 27)
{
std::cout << "> PROTOCOL: Overloaded Hospitaln"
<< "> Running. . .n"
<< "> Hellon"
<< "> Enter to Continue, Esc to exit";
std::cin.get();
}
}
int main()
{
//Variables
char cont = '0';
//Constants
StartMessage(cont);
return 0;
}
如上所述,我需要做什么才能使其正常工作?
#include<Windows.h>
#include<iostream>
int main()
{
while(true)
{ // GetAsyncKeyState take virtual key code
if(GetAsyncKeyState(VK_ESCAPE) {
std::cout << "escape key pressed" <<endl;
}
if(GetAsyncKeyState(VK_ENTER) {
std::cout << "enter key pressed" << endl;
}
}
}
好吧,不可能检查键是否被击中并继续。您需要等到用户按Enter和在您的代码中,您有一个无限的循环,不要忘记更新续。
cont = std::cin.get();
正如其他人所说的那样,终端将等待输入完整的测试线,然后再进行newline,因此您无法真正使用C ,独立于C 平台。该终端也不接受新线的空白输入。如果您想使用C 实时输入,则可以查看(例如SDL),但这可能不是初学者的起点的好地方。
类似的东西会带来与您想要的类似的行为:
#include <iostream>
void StartMessage()
{
std::string s;
do
{
std::cout << "> PROTOCOL: Overloaded Hospitaln"
<< "> Running. . .n"
<< "> Hellon"
<< "> Esc to exit";
std::cin >> s;
} while(s[0] != 27);
std::cout << "nExitingn";
}
int main()
{
StartMessage();
return 0;
}
这只有在从逃生开始的线开始时才会退出,但是您必须在Enter之后进行输入。为此使用类似" Q"的字符可能会更好,因此它在终端上更清楚地打印出来。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 创建LinkedList退出,返回代码为-11(SIGSEGV)
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- 如何让LLDB在成功时退出,在失败时等待
- C++控制台应用程序阻止退出
- 程序在执行程序的其余部分之前退出
- 构造函数在退出函数时无法初始化一个参数
- 为什么异常不退出程序?
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- 退出简单while循环时出现问题
- 使用vscode调试时,GDB意外退出
- pclose() 不会给我进程退出代码
- 为什么系统函数总是在C++中返回已转移的退出状态?
- C++从另一个函数退出函数
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- C++逗号分隔的输入数组代码过早退出
- Netbeans 10:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- 为什么 C++ 中的以下结构声明会导致退出 127?
- 使用Enter继续前进并ESC退出C
- C++程序应该在他按下'esc'后立即退出