C语言,如何实现在每条printf之前输出当前时间?
发布网友
发布时间:2022-04-23 22:32
我来回答
共1个回答
热心网友
时间:2022-04-18 05:20
编一个输出时间的函数,输出时调用一下。例如:
#include<stdio.h>
#include<time.h>
char * t(){
time_t now = time (NULL);
return ctime(&now);
}
main(){
int i,j,k,m;
for (m=0;m<3;m++)
{
for (j=0;j<5000;j++)
for (i=0;i<5000;i++){
k++; k = k % 123;
}
printf("%sk=%d\n", t(), k); // 调用 t() 输出时间。
}
return 0;
}
===========
当然 你也可以编写一个
void t(){
time_t seconds;
struct tm * timeinfo;
seconds = time (NULL);
timeinfo = localtime ( &seconds );
printf("%d-%d-%d: ",timeinfo->tm_hour,timeinfo->tm_min, timeinfo->tm_sec);
}
就打印 时分秒。
调用:
t(); printf("%d\n", k);追问输出时间没问题,我的问题是现在已经写好一个程序,会通过计算一组数打印出很多东西。现在要在每一行输出的最前端输出当前时间,而我的 printf 语句并不是都在同一个循环或同一个文件内,这样的话不是要找到每一条 printf 然后在里面加入输出时间的函数,那太麻烦了。而且还要输出到 stderr。
追答建函数,void t(){}
输出用
fprintf(stderr, "%d-%d-%d: ",timeinfo->tm_hour,timeinfo->tm_min, timeinfo->tm_sec);
就到 stderr.
---------------------------------
用文本编辑的 搜索和替代功能,把 原来的程序里的 "printf(" 替代 成 "t();printf(" 。再大的程序,改起来也不困难啊。