【发布时间】:2016-04-27 00:05:12
【问题描述】:
所以我正在尝试为一个更大的项目创建概念证明。我目前正在做一个定时测验,只有 1 个问题,你有 10 秒的时间来回答。
我真正在问什么
-
我知道我可以通过这样做来读取用户输入
“cin
-
我可以通过做一个计时器
clock_t 计时器;
定时器 = 时钟();
//代码
定时器 = 时钟() - t;
-
但是你是如何把所有这些放在一起的呢?您可以在请求输入时运行计时器吗?它似乎不会,因为 c++ 会逐行执行每个部分并等到它完成后再继续。但必须有办法!这是我想出的...
bool Question(int Correct) { int Answer = 0; cin >> Answer; if (Answer == Correct) { return true; } else { return false; } } int main() { cout << "1 + 1 is: "; clock_t Timer; Timer = clock(); bool Is_Correct = Question(2); Timer = clock() - Timer; cout << "You Answered: "; if (Is_Correct) { cout << "Correct!"; } else { cout << "Wrong!"; } cout << "\nAnd by the way, you answered the question with " << 10 - (Timer / CLOCKS_PER_SEC) << " Seconds to Spare.\n"; cin.get(); cin.get(); return 0; }
对不起,间距有点乱了。
【问题讨论】:
-
首先,这很像 C!尝试将
<chrono>标头用于类似时间的实用程序。 -
@alf 抱歉,我忘了说它只是一个窗口。有没有办法告诉 exe 如果在 10 秒内没有回答命令 (cin),它应该“继续”?
-
如果您正在尝试制作更好的轮子,为什么不正确地做,并使用可视化的代码分析工具。在 HPC 社区 Tuning and Analysis Utilities (TAU) cs.uoregon.edu/research/tau/home.php 很受欢迎。看起来像完整的仪器和分析是多余的,1)它会给你你想要的时间信息以及更详细的时间,2)知道如何使用这种工具很好,3)你可能找不到确切的您正在寻找的内容,但您可能会发现一些与流程中的性能瓶颈有关的有趣内容