文件IO第二天,速来

文章介绍了C语言中进行时间编程的基本方法,包括使用time函数获取系统时间,ctime函数将时间转换为可读字符串,以及localtime函数将时间转化为自定义格式的本地时间。通过structtm结构体,开发者可以定制时间显示格式,注意月份和年份的特殊处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IO分为文件IO和标准IO。

标准IO由C库提供,功能较少,属于比较底层的IO。文件IO是由Linux提供,功能更加丰富。

该篇文章主要讲的是时间编程。

时间编程是通过函数获取世界标准时间,计算方式以1970年1月1日凌晨0时0分0秒开始。

API        :time
                #include <time.h>
                time_t time(time_t *tloc);
                功能:获取系统标准时间 
                参数:tloc:保存秒数的变量地址
                
                返回值:
                、        成功返回:获取到秒数
                        失败:-1

        

第一个小程序测试!

PS:这里有两个需要注意的点。

第一个是类型,因为秒数太长,所以确定类型的时候需要设置为长整形。

第二,因为API的参数是一个指针类型,所以在传入参数的时候需要取地址。

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

int main(void)
{
    long ret,t;
    ret = time(&t);
    printf("1970到现在的秒数为:%ld\n",ret);
    return 0;
}

 这里打印出来是整个秒数,一般的话都不会这样使用,毕竟谁家使用时间是通过秒来使用的呢,所以需要进行一些改变。

这个时候就需要使用ctime函数。该函数的原型在下面

2>将标准时间转化为字符串时间
                ctime
                #include <time.h>
                char *ctime(const time_t *timep);
                功能: 
                    将标准时间转化为字符串时间
                    
                参数: 
                        timep;以秒为单位的时间指针
                        
                返回值: 
                        成功返回表示时间的字符串 
                        失败:NULL

#include <stdio.h>
#include <time.h>
#include <string.h>
int main(void)
{
    long t,ret;
	ret = time(&t);
	char buf[64];
	stpcpy(buf,ctime(&ret));
	//通过ctime可以将时间转化成为当前的时间
    printf("当前时间为:%s\n",buf);
    return 0;
}

执行的结果如下 

可以看到,通过这个函数就能够获取到当前系统的时钟。

到这里,有些小伙伴可能会觉得,这样的时间喔不太喜欢,我想要自己设置格式的时间。这就需要下面的这个函数了 。

3>将标准时间转化为自定义格式的本地时间
                localtime 
                #include <time.h>
                struct tm *localtime(const time_t *timep);
                功能: 
                        标准时间转化为自定义格式的本地时间
                        
                参数: timep;以秒为单位的时间指针
                    
                返回值: 成功返回结构体指针:struct tm *

失败返回:NULL

这个函数最重要的就是它的结构体tm

        struct tm {
               int tm_sec;    /* Seconds (0-60) */秒数
               int tm_min;    /* Minutes (0-59) */分钟
               int tm_hour;   /* Hours (0-23) */小时
               int tm_mday;   /* Day of the month (1-31) */号
               int tm_mon;    /* Month (0-11) */月 要+1
               int tm_year;   /* Year - 1900 */年  加上1900
               int tm_wday;   /* Day of the week (0-6, Sunday = 0) */
                                    周几
               int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */
                                    一年中的第几天
               int tm_isdst;  /* Daylight saving time */夏令时
           };
        

根据这个结构体,我们可以自定义我们需要的时间格式。它的月份是从Month (0-11),所以使用的时候需要加1。年份的话它是减了1900,,所以打印的时候需要加上1900。

PS:调用这个结构体的时候需要注意哦

时间编程常见就是以上的内容了,喜欢的朋友可以自己去玩玩呀!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值