所以我制作了一个用DDA算法绘制一条线的c ++程序,我希望fins程序完成多长时间,但似乎我输出的时钟函数无法打印出来
#include <iostream>
#include <graphics.h>
#include <conio.h>
#include <time.h>
using namespace std;
int opt, x1 = 50, y1 =50, x2 = 50, y2=200;
int xt, yt;
int dx;
int dy;
int i;
int j;
int up;
int gd = DETECT, gm;
int main()
{
clock_t exe, exe2;
exe = clock();
dx=(x2-x1);
dy=(y2-y1);
if(dx > dy)
up=dx;
else
up=dy;
float xi=(x2-x1)/up;
float yi=(y2-y1)/up;
int x=x1;
int y=y1;
int xt=x1;
int yt=y1;
initgraph(&gd, &gm, "C:\\TC\\BGI");
putpixel(x,y, 15);
for(j=1;j<=500;j++)
{
for(i=1;i<=up;i++)
{
x += xi;
y += yi;
putpixel(abs(x),abs(y), 15);
}
x = xt;
y=yt;
}
getch();
closegraph();
exe2 = clock();
float diff = ((float)exe2 - (float)exe);
cout << "The time: " << diff << endl;
system("pause");
return 0;
}
该行显示在图形窗口中,但在关闭图形窗口后,程序停止而不显示diff的结果
答案 0 :(得分:0)
尝试以下方式。
如果执行没有在system("pause");
暂停,请尝试从键盘上读取内容,例如cin >> x
。
#include <time.h>
#include <stdio.h>
time_t start,end;
time (&start);
.
.
.
<your code>
.
.
.
time (&end);
double dif = difftime (end,start);
printf ("Elasped time is %.2lf.", dif );
答案 1 :(得分:0)
有很多方法可以实现(分析)。 但似乎你想要一个基本的方法:
std::cerr << "Diff : " << diff << std::endl;
我不确定因为我不在Window上,但我认为所有cerr消息都将保留在Visual Studio控制台中。
保持跟踪GUI应用程序的一种更通用的方法是日志系统。 以最简单的形式:将您想要的内容写入日志文件(文本文件)。但是对于整个应用程序时间,您将有一些额外的时间来打开文件。
PS:如果有一天你试图对一个复杂的程序进行一些分析:wiki
答案 2 :(得分:0)
或者您可以将stdout输出定向到文件:
freopen("myfile.log", "w", stdout);
使用分析器还可以确定程序的速度。