C++ 控制台未按预期退出

标签 c++

我有一个接受用户输入的小型控制台应用程序,我有以下循环不断要求用户输入,直到他们 (a) 输入他们的名字并按 enter 或 (b) 按转义键。出于某种原因,当他们按下转义键时,他们必须按下回车键,此时只有循环结束,控制台窗口仍然保持打开状态,我错过了什么?代码如下...

while (input.empty()) {

    cout << "Enter Something";

    getline(cin, input);

    if (GetAsyncKeyState(VK_ESCAPE))
    {
        exit(EXIT_SUCCESS);   // this should just close the console entirely, right?
    }

} 

最佳答案

GetAsyncKeyState 在调用 getline 之后被调用。 getline 等待用户键入一些数据并按回车键(或者更确切地说,它等待从标准输入中读取以换行符结尾的一行数据)。只有在 getline 完成后,此代码才会检查是否按下了 ESC 键。

请参阅此问题以了解如何完成您想要完成的任务:How to read until ESC button is pressed from cin in C++

关于C++ 控制台未按预期退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25657328/

相关文章:

c++ - cl::程序构造函数之间的区别

c++ - 如何在 C++ 中对变量使用科学记数法?

c++ - 使用 g++、make、cmakelists 在 linux openSUSE 上编译 googletest 程序

c++ - 为 C++ 开发人员编译 Eclipse

c++ - 如何在类的构造函数的 mem_initilizer_list 中初始化 union 对象

c++ - 如何在可变大小的类中创建指针数组?

php - 美元符号以某种方式与 C++ 指针相关吗?

c++ - 在 C++ 中使用花括号实例化对象是什么意思?

c++ - 在 C++ 中使用 istringstream 时出现 "Off by one error"

c++ - 如何确保只有1个线程在运行? C++