Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;定时器实现 我试图在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"; short e,sum; 时钟没有启动; 双倍持续时间=0; 对于(e=0;e_C++_Timer_Clock - Fatal编程技术网

C++;定时器实现 我试图在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"; short e,sum; 时钟没有启动; 双倍持续时间=0; 对于(e=0;e

C++;定时器实现 我试图在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"; short e,sum; 时钟没有启动; 双倍持续时间=0; 对于(e=0;e,c++,timer,clock,C++,Timer,Clock,,您的问题是在循环过程中没有刷新输出流。实际上,将文本写入控制台有点昂贵。因此,输入会被缓冲,并且仅在刷新发生时才会写入控制台。刷新流可以通过流式std::flush: cout << e<<std::flush; cout您的问题是在循环过程中没有刷新输出流。实际上,将文本写入控制台的成本有些高。因此,输入会被缓冲,只有在刷新发生时才会写入控制台。刷新流可以通过流std::flush来完成: cout << e<<std::fl

,您的问题是在循环过程中没有刷新输出流。实际上,将文本写入控制台有点昂贵。因此,输入会被缓冲,并且仅在刷新发生时才会写入控制台。刷新流可以通过流式
std::flush

    cout << e<<std::flush;

cout您的问题是在循环过程中没有刷新输出流。实际上,将文本写入控制台的成本有些高。因此,输入会被缓冲,只有在刷新发生时才会写入控制台。刷新流可以通过流
std::flush
来完成:

    cout << e<<std::flush;

CUT缓冲,尝试<代码> STD::CUT问题似乎是C++,为什么是<代码> C < /代码>标签,但为什么是繁忙的循环而不是睡眠?你如何将代码> CordsSpPiSeCSE/<代码>与CPU频率相关,特别是考虑到它在运行时可能会有变化?为什么你认为你应该每秒都看到一些东西,Y?你有一个具有强大时间保证的实时操作系统吗?:)嘿,大家好,谢谢回复。一秒钟是任意的,我打算扩展此代码,在X秒过去后停止或警告我@TROY睡眠不是因为工作同时完成,缓冲,尝试<代码> STD::CUT问题似乎是C++,所以为什么<代码> C < /C>标签?非话题,但是为什么忙循环而不是睡眠?你如何与你的代码频率相关?< CordsSpRyPiSSEC>代码>与CPU频率相关,特别是考虑到它在运行时可能会变化吗?另外,为什么你认为你应该每秒钟都看到一些东西,你有一个RTOS有很强的时间保证吗?:)大家好,谢谢你们的回复。一秒钟是任意的,我打算扩展此代码,在X秒过去后停止或警告我@特洛伊睡眠并没有实施,因为工作将同时完成。请注意,冲洗时间取决于系统。std::flush和std::endl强制刷新,所以这是可以的,但打印“\n”可能会清除缓冲区,但不一定要清除。@Yester:这就是为什么我写道它可能会这样做(可能会更加强调这一点)感谢您的快速响应,很抱歉我现在才回答。我已经按照你的建议刷新了流媒体,结果非常棒。我从来没有想过这一点,起初我对着电脑大喊大叫,但现在似乎有道理了。再次感谢@grizzlyNotice,冲洗时间取决于系统。std::flush和std::endl强制刷新,所以这是可以的,但打印“\n”可能会清除缓冲区,但不一定要清除。@Yester:这就是为什么我写道它可能会这样做(可能会更加强调这一点)感谢您的快速响应,很抱歉我现在才回答。我已经按照你的建议刷新了流媒体,结果非常棒。我从来没有想过这一点,起初我对着电脑大喊大叫,但现在似乎有道理了。再次感谢@grizzly