標頭檔需 include <ctime>,
以下是簡單的程式碼。
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <conio.h>
using namespace std;
int main()
{
int i,j;
char c;
int a=0;
time_t start,end;
c=getch();
if(c=='y')
{
while(a!=10)
{
start=time(NULL);
for(i=0;i<10;i++)
for(j=0;j<10;j++)
sin(0.2);
end=time(NULL);
if(difftime(end,start)==1)
{
a=a+difftime(end,start);
cout <<"time= "<<a<<" sec."<<endl;
}
}
}
system("pause");
return 0;
}
在這邊當getch()接受到字元 y 輸入時程式就會開始動作,
我這邊是執行兩個 for 迴圈的計算,然後再求出 "difftime(end,start)" end和start 間的時差,
當兩者相差一秒時,就會有累加的動作。
-----------------------
學長修改:
-----------------------------------
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <conio.h>
using namespace std;
int main()
{
int i,j;
char c;
int a=0;
time_t start,end;
c=getch();
if(c=='y')
{
while(a!=10)
{
start=time(NULL); //based time
end=time(NULL);
while(difftime(end,start)!=1)
end=time(NULL);
a=a+difftime(end,start);
cout <<"time= "<<a<<" sec."<<endl;
}
}
system("pause");
return 0;
}
學長這邊是利用...
while(difftime(end,start)!=1)
end=time(NULL);
取代兩個 for 迴圈的計算,程式就不會有誤差,時間的累嘉也會相對的準確。