プログラムが数秒後に何かを実行できるように、C++で「タイマー」関数を実装しようとしています。しかし、予期しない結果が出ました。
short e, sum;
clock_t start;
double duration=0;
for (e=0; e<4; e++) {
start = clock();
while (duration < 1) {
duration = (clock() - start)/(double)CLOCKS_PER_SEC;
}
cout << duration;
duration = 0;
sum += e;
/* Calculate EPOCH error */
cout << e;
}
cout << "\n" << e<< "\n";
私が期待する結果は次のとおりです。
- 毎秒コンソール出力、その後にe(0,1,2,3)
- 実行の最後に、合計が0 + 1 + 2 + 3=6になると予想します。
得られた結果:
- コンソール出力の後にeが続き、実行が終了するとすべて一緒に
- 合計=6
私が不確かだと思うのは、なぜプログラムは実行が終了するまでコンソールに出力し、期待どおりに毎秒ではないのですか?
乾杯、