设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。

/********************************************************************************************************
*
*
* 设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每隔1s写入到本地磁盘中一个
* 叫做log.txt的文本中,如果文本不存在则创建。
*
* 
*
* Copyright (c)  2023-2024   18975491291@163.com   All right Reserved
* ******************************************************************************************************/

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


int main(int argc, char *argv[])
{
    if (2 != argc) // 判断函数调用时的参数是否输入正确
    {
        printf("Usage:%s<dst>\n", argv[0]);
        exit(1);
    }
    FILE *fp = NULL;           // 申请结构体指针变量
    struct tm *stdTime = NULL; // 申请tm结构体变量
    time_t curTime = 0;        // 申请时间戳变量
    while (1)
    {
        
        //此处在循环体内进行打开/关闭文件并错误判断,因为如果不进行这一步,则会无法打开文件看到时间覆盖的动作。因此这一步需要根据具体设备来调整。

        if (NULL == (fp = fopen(argv[1], "a")))//用a进行追加写入,效果更明显;不然可以直接用w进行覆盖操作
        {
            perror("Open failed.\n");
            exit(1);
        }
        curTime = time(NULL);          // 获取当前时间戳
        // 使用localtime 函数,并获取时间,传入tm结构体
        stdTime = localtime(&curTime); 
        if ((fprintf(fp, "%d 年 %d 月 %d 日  星期%d  %d时%d分%d秒\n", stdTime->tm_year + 1900, stdTime->tm_mon + 1, stdTime->tm_mday, stdTime->tm_wday, stdTime->tm_hour, stdTime->tm_min, stdTime->tm_sec) == EOF))
            printf("Input time failed.\n"); // 对文件进行输入时间,并同时进行错误判断

        // 循环体内进行关闭文件操作    
        fclose(fp);                         
        sleep(1);
    }
    return 0;
}
posted @ 2024-05-11 18:47  小懿同学  阅读(76)  评论(0)    收藏  举报