C語言學習日記(4)——輸出當前時間

小貓愛學習發表於2020-11-11

怎麼獲得當前時間呢?我們先來看一下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;
}

執行一下,輸出結果:

輸出結果

成功顯示時間。開心。

搜尋頭條號愛學習的小貓檢視更多文章

 

相關文章