0
点赞
收藏
分享

微信扫一扫

C语言 将程序运行的时间记录在记事本中,下次运行进行读取

水沐由之 2022-06-01 阅读 127

fprintf函数:

头文件

原型

说明

返回值

#include <stdio.h>

int fprintf(FILE *stream, const char *format, …);

向stream指向的流(而不是标准输出流)写入数据。除此之外,与printf函数完全相同。

返回发送的字符数。当发生输出错误时,返回负值。

fscanf函数:

头文件

原型

说明

返回值

#include <stdio.h>

int fscanf(FILE *stream, const char *format, …);

从stream指向的流(而不是从标准输入流)中读取数据。将读取的数据格式转换,并将转换结果保存至format后面的实参所指向的对象。format指向的字符串为格式控制字符串,它指定了可输入的字符串及其赋值时转换方法。格式控制字符串中可以不包含任何命令,也可包含多个命令。

若没有执行任何转换就发生了输入错误,则返回宏定义EOF的值。否则,返回成功赋值的输入项数。若在输入中发生匹配错误,则返回的输入项数会少于转换说明符对应的实参个数,甚至为0。

fclose函数:

头文件

原型

说明

返回值

#include <stdio.h>

int fclose(FILE *stream);

刷新stream所指向的流,然后关闭与该流相关联的文件。流中留在缓冲区里面尚未写入的数据会被传递到宿主环境,由宿主环境将这些数据写入文件。而缓冲区里面尚未读取的数据将被丢弃。然后断开流与文件的关联。如果存在系统自动分配的与流相关联的缓冲区,则会释放该缓冲区。

若成功地关闭流,则返回0。检查到错误时返回EOF。

#include <time.h>
#include <stdio.h>

char&nbsp;data_file[]&nbsp;=&nbsp;&quot;time.txt&quot;;

void&nbsp;get_data(void){
FILE&nbsp;*fp;

if&nbsp;((fp&nbsp;=&nbsp;fopen(&quot;today.txt&quot;,&nbsp;&quot;r&quot;))&nbsp;==&nbsp;NULL){
printf(&quot;本程序第一次运行。\n&quot;);
}&nbsp;else&nbsp;{
int&nbsp;year;
int&nbsp;mon;
int&nbsp;day;
int&nbsp;hour;
int&nbsp;min;
int&nbsp;sec;

while&nbsp;(fscanf(fp,&nbsp;&quot;%04d&nbsp;%02d&nbsp;%d&nbsp;%02d&nbsp;%02d&nbsp;%02d&quot;,&nbsp;&amp;year,&nbsp;&amp;mon,&nbsp;&amp;day,&nbsp;&amp;hour,&nbsp;&amp;min,&nbsp;&amp;sec)&nbsp;==&nbsp;6){
printf(&quot;上一次运行是在%04d年%02d月%d日%02d时%02d分%02d秒。\n&quot;,&nbsp;year,&nbsp;mon,&nbsp;day,&nbsp;hour,&nbsp;min,&nbsp;sec);
}
fclose(fp);
}
}

void&nbsp;put_data(void){
FILE&nbsp;*fp;
time_t&nbsp;current&nbsp;=&nbsp;time&nbsp;(NULL);
struct&nbsp;tm&nbsp;*timer&nbsp;=&nbsp;localtime(&amp;current);

if((fp&nbsp;=&nbsp;fopen(&quot;today.txt&quot;,&nbsp;&quot;w&quot;))&nbsp;==&nbsp;NULL){
printf(&quot;\a文件打开失败。\n&quot;);
}else&nbsp;{
fprintf(fp,&nbsp;&quot;%04d&nbsp;%02d&nbsp;%d&nbsp;%02d&nbsp;%02d&nbsp;%02d\n&quot;,&nbsp;timer-&gt;tm_year&nbsp;+&nbsp;1900,&nbsp;timer-&gt;tm_mon&nbsp;+&nbsp;1,&nbsp;timer-&gt;tm_mday,&nbsp;timer-&gt;tm_hour,&nbsp;timer-&gt;tm_min,&nbsp;timer-&gt;tm_sec);
fclose(fp);
}

}


int&nbsp;main(void){
get_data();
put_data();

return&nbsp;0;
}

运行结果:
第一次执行:
C语言 将程序运行的时间记录在记事本中,下次运行进行读取_2d
第二次执行:
C语言 将程序运行的时间记录在记事本中,下次运行进行读取_2d_02
get_data()函数
第一次运行程序,显示“第一次运行”。
第二次运行程序,将程序上一次运行时写入的日期和时间读入文件并显示。

put_data()函数
在程序最后调用。将运行时的日期和时间写入today.txt 文件。


举报

相关推荐

0 条评论