#include <iostream>
#include <cstdio>
#include <sysKpes.h>
#include <unistd.h>
#include <time.h>
using namespace std;
int main()
{
time_t now;
tm * timenow;
while(true){
time(&now);
timenow = localtime(&now);
cout<<"Those output come from child,"<<asctime(timenow)<<endl;
}
}
#include <stdio.h>
#include <time.h>
int main()
{
time_t now;
while(1)
{
time(&now);
time_t timeValue = 0;
char *str = NULL;
timeValue = time(NULL);
str = ctime(&timeValue);
printf("Those output come from child,%s\n",str);
}
return 0;
}
为什么这个的C语言代码输出系统时间有点慢啊?c++的输出系统时间就很快,C语言的这个代码怎么样才能让它输出快点啊?
不是时间问题,是cout和printf的区别
而且不是你表面看的printf慢,其实不然,printf还快些。
我们可以做一个测试。就循环1000次,打印时间。
经过测试,发现while循环1000次,printf只打印一个时间比如时间是2:23:2,而cout打印了两个时间2:23:2和2:23:3。
这说明cout花了至少1s多才打印了1000条,而printf只用了可能1s不到就打印了1000条。
这就是为什么你看到cout的时间好像一直不动,很久才到下一秒一样。
#include <iostream>
#include <cstdio>
#include <time.h>
using namespace std;
int main()
{
time_t now;
tm * timenow;
int t = 0;
while (t<1000) {
time(&now);
timenow = localtime(&now);
cout << t<<"Those output come from child," << asctime(timenow) << endl;
t++;
}
return 0;
}
#include <stdio.h>
#include <time.h>
int main()
{
time_t now;
int t = 0;
while (t<1000)
{
time(&now);
time_t timeValue = 0;
char *str = NULL;
timeValue = time(NULL);
str = ctime(&timeValue);
printf("%dThose output come from child,%s\n", t,str);
t++;
}
return 0;
}