【发布时间】:2014-11-25 10:48:00
【问题描述】:
如何输入输入而不导致代码停止执行?在过去的 20 分钟里,我一直在寻找答案,但没有结果。
cin >> string; 暂停代码 AFAIK。
我需要使用多线程,还是有更好的方法? (我什至不知道多线程是否可行。)
我最近开始学习 c++,至少可以说我是初学者,所以请详细解释并包括我可能需要的任何库,谢谢。
【问题讨论】:
-
如果您提示输入但不等待输入就继续执行,您期望会发生什么?这似乎是一种引入竞争条件的快速方法。
-
您将需要更详细地考虑程序的结构以及您希望它做什么。当用户输入未决时,后台应该发生什么?当用户输入可用时,该后台任务应该如何中断?这些是需要考虑的关键因素,但您没有在问题中考虑它们。
-
有没有办法在代码运行的时候输入变量?类似
while(true) {if(getConsoleInput() == "blabla") randomFunction();} -
这真的取决于你想做什么。如果你只是想让你的程序停止它正在做的事情,请使用
kbhit()作为建议的答案。但是,如果您正在计划诸如视频游戏之类的东西(例如),您将需要使用线程。使用 while(true) 通常很糟糕(主动等待,仅仅等待就消耗资源)。
标签: c++ multithreading console-application user-input cin