怎么获得当前时间呢?我们先来看一下C语言程序的基本结构,以Hello,World程序代码为例:

#include <stdio.h>
int main()
{
    printf("Hello,World!\n");
    return 0;
}

这个程序只有6行,第一行叫做包含指令,其中的stdio.h叫做头文件,包含指令的格式就像上面一样。为什么要写这一条,可以简单理解为printf函数是放在stdio.h这个文件里面的,把它包含进来就可以使用printf函数了。stdio.h这个文件里面还有好多有用的函数,以后应该也会用到,因为这个文件太常用了,就算你不写系统也会默认写了。小猫有些好奇这个文件里有些啥?所以进入D:\mingw64\x86_64-w64-mingw32\include文件夹(小猫装在D盘根目录下),找到了stdio.h看了看,文件很长,不是不懂,不过确实看到了printf这个函数声明。

stdio.h文件中printf函数信息

后面5行是main函数,C语言中有且只有一个main函数,它是整个程序的入口,程序都是从main函数开始执行。函数体用{}括起来,里面只有两条语句,第一条就是输出语句,第二条是向操作系统返回一个值,一般用0代表正常结束。

要获得当前时间就需要与时间处理相关的函数,这些函数都包含在头文件time.h中,所以程序必须在开始加入一条#include <time.h>。

time.h文件里面有一个time函数,它有什么作用呢?time函数可以返回当前时间,它使用起来略微复杂,首先我们要定义一个time_t类型的变量,然后有两种格式来使用它:

//定义一个time_t类型变量
time_t cur_time; 
//方法一,time函数返回一个time_t类型变量保存到cur_time变量中
cur_time = time(NULL); 
//方法二,将cur_time的地址作为参数传递给time函数,time函数将时间放入这个地址中
time(&cur_time); 

这里方法二涉及到指针的概念,不过我们可以这样理解:

C语言中任何变量都保存在内存的某个地方,这个地方有个编号,叫做这个变量的地址。你可以把内存看作是一个大的居民小区,变量就是里面的每一户居民,每家都有一个门牌号,内存地址就相当于门牌号。&是取地址运算符,&cur_time就是取得这个变量的地址,将这个地址传递给time函数后,time函数就将时间放到这个地址对应的内存,于是cur_time中就获得了时间。

time函数获得的时间是time_t类型的,time_t类型是什么类型呢?小猫下一篇日记再探索吧。反正就是我们不能把它当成时间直接输出,其实就算小猫想直接输出cur_time的话,小猫也不知道用什么转换说明符呀。那还要怎么做呢?time.h中还有一个函数ctime,它可以把time_t类型的变量转换成一条字符串,这条字符串就是小猫可以看懂的格式啦。ctime函数需要传入一个time_t变量的地址作为参数,用法是这样的:

ctime(&cur_time);  //ctime函数接受一个time_t类型变量地址,将其转换为一条字符串,并返回字符串地址

 于是,我们可以编程序输出当前时间啦!试一下看看:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    time_t cur_time;      //定义变量
    time(&cur_time);    //获取当前时间
    printf("%s",ctime(&cur_time));   //将当前时间转换为字符串并输出
    system("pause");
    return 0;
}

运行一下,输出结果:

输出结果

成功显示时间。开心。

搜索头条号爱学习的小猫查看更多文章

 

更多推荐

C语言学习日记(4)——输出当前时间