作业 编程读写-一个文件test.txt ,每隔1秒向文件中写入年月日时分秒行 数据。5.12

news/2025/3/14 21:36:45/

题目要求:编程读写-一个文件test.txt ,每隔1秒向文件中写入行数据,类似这样:
1, 2007-7-30 15:16:42
2, 2007-7-30 15:16:43
该程序应该无限循环,直到按Ctr1-C中 断程序。
再次启动程序写文件时可以追加到原文件之后,并且序号能够接续上次的序号,比如:
1, 2007-7-30 15:16:42
2,2007-7-30 15:16:43
3,2007-7-30 15:19:02
4,2007-7-30 15:19:03
5,2007-7-30 15:19:04

提示:
要追加写入文件,同时要读取该文件的内容以决定下一一个序号是几,应该用什么模式打开文件?
首先判断一下打开的文件是否为新文件,如果是新文件,就从序号1开始写入;如果不是新文件,则统计原来有多少行,比如有n行,然后从序号n+1开始写入。以后每写多少行就把行号加1。
获取当前的系统时间需要调用函数time(),得到的结果是一一个time_t类型,其实就是一个大的结构体,
其值表示从UTC时间1970年1月1日00:00:00 (称为UNIX的Epoch时间)到当前时刻的秒钟数。然后调用localtime ()将time_ t所表示的UTC时间转换为本地时间(我们是+8区,比UTC多8个小时),并转成struct tm*类型,该类型的各数据成员分别表示年月日时分秒,请自己写出转换格式的代码,不要使
用ct ime ()或asctime ()函数。具体用法请查阅man page。 time和localt ime函数需要头文件time. h。
调用sleep(n)可使程序睡眠n秒,该函数需要头文件unistd. h。

/*===============================================
*   文件名称:time_test.demo.c
*   创 建 者:memories 
*   创建日期:2023年05月10日
*   描    述:
================================================*/
#include <stdio.h>
#include <time.h>
#include <stdlib.h> 
#include <string.h>
#include "time_test.demo.h"time_e nowtime()
{time_e p = malloc(sizeof(timee));if(p==NULL)return NULL;char *q=malloc(sizeof(size));bzero(p,sizeof(p));time_t now;struct tm *nowtime;time(&now);nowtime=localtime(&now);p->year=nowtime->tm_year+1900;p->month=nowtime->tm_mon+1;p->day=nowtime->tm_mday;p->hour=nowtime->tm_hour;p->minute=nowtime->tm_min;p->second=nowtime->tm_sec;}
/*===============================================
*   文件名称:time_test.demo.h
*   创 建 者:memories 
*   创建日期:2023年05月10日
*   描    述:
================================================*/
#ifndef __time_test_demo_H_
#define __time_test_demo_H_#define size 100typedef struct timenow{int year;int month;int day;int hour;int minute;int second;
}timee,*time_e;//时间创建函数
time_e nowtime();
#endif
/*===============================================
*   文件名称:time_demo.c
*   创 建 者:memories 
*   创建日期:2023年05月10日
*   描    述:
================================================*/
#include <stdio.h>
#include <time.h>
#include "time_test.demo.h"
#include <unistd.h>
int main(int argc, char *argv[])
{ int i=0;FILE *fp=fopen("new_test3.txt","a+");while(1){int ret = getc(fp);if(ret=='\n'){i++;}if(feof(fp)){printf("ok,letsgo\n");break;}}while(1){time_e p=nowtime();char buf[100]={0};sprintf(buf,"%d %d-%d-%d %d:%d:%d\n",i,p->year,p->month,p->day,p->hour,p->minute,p->second);fputs(buf,fp);fflush(fp);printf("%s\n",buf);sleep(1);i++;}fclose(fp);return 0;
} 

http://www.ppmy.cn/news/68496.html

相关文章

Socket请求和Http请求区别和场景

我们在开发过程中遇到http请求和socket请求。大部分前后交互都是通过http请求的方式&#xff0c;那socket请求怎么使用&#xff0c;什么情况下使用呢&#xff1f; 基本概念 http请求&#xff1a;基于http协议的soap协议&#xff0c;常见的http数据请求方式有get和post&#xf…

报表开发组件FastReport Mono v2023.1 - 支持与My Reports Cloud集成

FastReport Mono v2023.1现已推出! 最新版中更新了与 My Reports Cloud 的部分集成、来自 JasperReports 的模板转换器等功能&#xff0c;同时修复了10余处问题&#xff0c;点击下方免费试用哦~ FastReport Mono v2023.1现已推出! 今天将为大家带来FastReport Mono v2023.1更新…

Fastjson 的使用总结

一.JSON 介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 JSON建构于两种结构&#xff1a; “名称/值”对的集合&#xff08;A collection of name/value pairs&#xff09;。不同的语言中&#xff0c;它…

【FMC136】AD9467之4通道 250MSPS 采样率16位AD 采集子卡模块得设计原理图中文资料

板卡概述 FMC136 是一款4 通道250MHz 采样率16 位AD 采集FMC子卡&#xff0c;符合VITA57 规范&#xff0c;可以作为一个理想的IO 模块耦合至FPGA前端&#xff0c;4 通道AD 通过高带宽的FMC 连接器&#xff08;HPC&#xff09;连接至FPGA 从 而大大降低了系统信号延迟。该板卡支…

使用 @Autowired 依赖注入时警告不建议使用字段注入

文章目录 字段注入缺点无法注入 final 字段与 Spring 容器耦合度高 构造器注入&#xff08;Spring 官方推荐&#xff09;Setter 方法注入 在 Spring 中注入依赖时有字段注入、构造器注入、Setter 方法注入三种注入方式。 字段注入缺点 无法注入 final 字段 在 Spring 2.5 中引…

算法修炼之练气篇——练气七层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

Git常用操作:基础命令、生成公钥、webhook同步

这里写目录标题 下载安装GIT基础命令克隆初始化与仓库建立连接下拉代码提交代码清空本地缓存 本地生成GIT公钥webhook&#xff08;本地-码云-服务器代码同步&#xff09; 下载安装GIT 此处只介绍windows系统下的安装&#xff0c;linux一般都是自带git&#xff08;自行百度&…

Windows下git和github的使用

介绍windows下的git和GitHub使用。 一、注册gihub账号 github官网&#xff1a;https://github.com 自行创建即可。 登录&#xff0c;create repository新建仓库一个测试库readme&#xff0c;创建完成。 二、git的安装 git官方网站&#xff1a;https://git-scm.com/ 选择Wi…