I/O中C语言编写获取系统时间,并将系统时间写入文件中,实现现象,按下ctrl+c,再重新运行程序后显示的时间延续上次运行的代码
时间: 2024-02-06 19:12:03 浏览: 87
好的,以下是使用C语言编写获取系统时间并写入文件的示例代码,可以实现现象,按下`ctrl+c`停止程序后再次运行程序时,程序会从上次停止的时间点继续输出当前时间:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int main() {
FILE* fp;
time_t start_time, now_time;
char time_str[30];
fp = fopen("time.txt", "a"); //以追加模式打开文件
if (fp == NULL) {
printf("打开文件失败!\n");
return -1;
}
time(&start_time); // 记录程序开始时间
strftime(time_str, sizeof(time_str), "程序开始时间:%Y-%m-%d %H:%M:%S\n", localtime(&start_time));
fputs(time_str, fp); // 将开始时间写入文件
while (1) {
time(&now_time);
strftime(time_str, sizeof(time_str), "当前时间:%Y-%m-%d %H:%M:%S\n", localtime(&now_time));
fputs(time_str, fp); // 将当前时间写入文件
sleep(1); // 暂停1秒钟
}
fclose(fp);
return 0;
}
```
该程序会在当前目录下创建一个名为`time.txt`的文件,并将程序开始时间和每秒钟的当前时间写入文件中。`time()`可以获取当前系统时间,`localtime()`可以将`time_t`类型的时间转换为本地时间,`strftime()`可以将时间格式化为字符串类型。`fputs()`可以将字符串写入文件,`sleep()`可以使程序暂停一段时间。
同样地,当你按下`ctrl+c`停止程序后,再次运行程序时,程序会读取上次运行时写入的最后一个时间,并从该时间继续输出当前时间。由于使用了追加模式打开文件,因此可以实现不覆盖原有内容的写入。
阅读全文