晋中品牌网站建设建设,揭阳网站制作专业,网站怎样做才能有点击率,网站建设 海豚弯实现思路
主要是通过库函数和结构体获取当前系统时间#xff08;年月日和时分秒#xff09;保存到变量里#xff0c;然后通过格式化输出函数将当前系统时间输出到文件中去。 但是需要注意的是题目要求每隔 1 s对系统时间进行输出#xff0c;所以需要加入 sleep()函数进行调…
实现思路
主要是通过库函数和结构体获取当前系统时间年月日和时分秒保存到变量里然后通过格式化输出函数将当前系统时间输出到文件中去。 但是需要注意的是题目要求每隔 1 s对系统时间进行输出所以需要加入 sleep()函数进行调整 而且如果加入 sleep() 函数还想要输出数据到文件中的话是必须要在每一次输出数据后刷新缓冲区的。
#include stdio.h
#include time.h
#include unistd.hint main(int argc, char *argv[])
{FILE *fp;time_t current_time;struct tm *local_time;if((fp fopen(test.txt, w)) NULL){perror(fopen);}int i 0;while (1){time(current_time);local_time localtime(current_time);int year local_time-tm_year 1900; int month local_time-tm_mon 1;int day local_time-tm_mday;int hour local_time-tm_hour;int minute local_time-tm_min;int second local_time-tm_sec;i;printf(%d-%d-%d %d:%d:%d\n, year, month, day, hour, minute, second);fprintf(fp, %d, %d-%d-%d %d:%d:%d\n, i, year, month, day, hour, minute, second);fflush(fp);sleep(1);}return 0;
}存在的问题
我在写这个程序的时候把 时间戳的获取和年月日时分秒的赋值 放在了循环体外导致每一次输出到文件的系统时间都不变其实必须放在循环体内才能获得每一秒的时间戳从而获得正确的数据使用 sleep() 函数发现系统时间数据并没有输出到文件中后来发现是没有加 fflush 对缓冲区进行刷新。不会获取当前系统时间一定要记住这个获取当前系统时间的方式对于标准输出 ‘\n’ 会导致自动刷新缓冲区但是对于文件没有用也就是这里的 fprintf 函数里的 ‘\n’ 对于自动刷新缓冲区没用。