2016-08-13 42 views
0

我目前正在尝试计算cpp中循环的增量时间。目前我使用此代码C++ high_resolution_clock怪异输出

#include <chrono> 
int main() 
{ 

typedef std::chrono::high_resolution_clock Clock; 
typedef std::chrono::duration<float> fsec; 

auto lastTime = Clock::now(); 
auto currentTime = Clock::now(); 
fsec passedTime = currentTime - lastTime; 
while (true) 
{ 
    lastTime = currentTime; 
    printf(""); 
    printf(""); 
    printf(""); 
    printf(""); 
    printf(""); 
    printf(""); 
    printf(""); 
    printf(""); 
    printf(""); 
    printf(""); 
    currentTime = Clock::now(); 
    passedTime = currentTime - lastTime; 
    printf("%i\n", passedTime.count()); 
} 

return 0; 
} 

这不是实际的代码i。在程序中使用,但增量时间计算和输出是完全相同的,因为这样英寸

它被用于正常工作,当GLFW锁定到60滴答时,输出约为0.0167的数字,以及以约6k滴答/秒的方式降低数字。

我的问题是,我一切都转移出去的主要功能为方法和现在得到this result

好像我改变了错误的东西,但我想不出什么我已经改变了。

+1

_ ***这不是我在程序中使用的实际代码... *** _请发布[MCVE],否则它没有发生! –

+0

输出也完全一样。这完全复制了这个问题。我的错不足以澄清。 –

回答

1

您的printf错误,数据是浮点数,但printf格式是int。

+0

谢谢,第一次使用printf,不知道有特定的格式。 –

+1

你可能应该使用C++流操作符,那么你不需要担心类型如此多,类似于:'std :: cout << passedTime.count()<< std :: endl;' – David

+0

yes,I真的应该:-) –