首页 > 解决方案 > C++ 在不停止无限循环的情况下获取用户输入

问题描述

我正在做一个 c++ 项目,我应该在其中模拟传感器(温度、湿度、压力等),以不同的采样频率实时工作。

为此,我创建了一个无限循环。我希望用户能够退出循环。我的问题是,如果我尝试使用传统方法(cin、scanf、getc 等)获取用户输入,则循环将停止。

此外,我需要控制台来显示示例。

如果没有这些方法,您如何获得用户输入(任何输入都可以)?

这是我的代码原型:

while(!user_input){
    sampling_functions();
    display_samples();
}

提前致谢 :)

标签: c++user-inputinfinite-loop

解决方案


如果您想在没有回车键的情况下执行此操作,您将不得不变得复杂。您可以编写一个实际的 GUI 程序来监视按键事件。或者您可以编写一个ncurses程序,将终端置于原始输入模式,这样您就可以在输入原始键时看到它们。

您可以在不实际使用 ncurses 的情况下执行后者。这个答案可能会帮助你:

使用 C 或 C++ 从控制台获取原始输入

如果您这样做,请确保在程序退出之前将终端恢复为非原始模式,否则您的用户会对您感到沮丧。

这是你在这里的第一个问题。我不知道您是经验丰富的程序员还是学校的学生。如果您是在校学生,您可能需要考虑这对您来说有多重要。


推荐阅读