亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么類型被強化以后,我總是改不對了?

為什么類型被強化以后,我總是改不對了?

C
泛舟湖上清波郎朗 2023-03-17 18:14:12
我是個C語言初學者,請教各位C高手,關于localtime_s()和asctime_s()的問題。在visual studio 6.0里面,可以直接用localtime()把時間變量轉換成結構體,然后再用 asctime()把這個結構體轉換成ASCII碼,然后可以用于顯示。比如:#include <stdio.h>#include <time.h>void get_time(void);int main(){get_time();return 0;}void get_time(void){time_t now;time(&now);printf("Current time is: %s\n",asctime(localtime(&now)));}這個程序可以顯示當前時間。但是在visual studio .net 2005里面,有很多涉及到安全性的問題,很多函數都有變化,比如strcpy()就變成strcpy_s(),而且參數也多了一個。現在的問題是,localtime()變成了localtime_s(),asctime()變成了asctime_s(),而且函數的參數也變了。我看了help的講解,但是還是用不對這兩個函數。請各位C高手給予指點,給我講講新老格式的區別,并且將我上面的程序用localtime_s()和asctime_s()改寫一下。萬分感謝。懇請各位C高手指導我這個菜鳥一下。
查看完整描述

2 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

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

#define TIME_MAX 32

void get_time(void);

int main()
{
get_time();
getchar();
return 0;
}

void get_time(void)
{
time_t now;
time(&now);

// 定義兩個變量,存儲轉換結果
struct tm tmTmp;
char stTmp[TIME_MAX];

// 轉換為tm結構
localtime_s(&tmTmp,&now);

// 轉換為字符串并輸出
asctime_s(stTmp,&tmTmp);
printf("Current time is: %s\n",stTmp);
}

查看完整回答
反對 回復 2023-03-21
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

1、localtime函數:
原型:struct tm * localtime(const time_t * clock);
功能:把從1970-1-1零點零分到當前時間系統所偏移的秒數時間轉換為本地時間, 其中clock為秒數時間;
返回值:返回一個tm結構體的指針。tm結構體是time.h中定義的用于分別存儲時間的各個量(年月日等)的結構體。
2、asctime函數:
原型:char* asctime (const struct tm * timeptr);
功能:把timeptr指向的tm結構體中儲存的時間轉換為字符串;
返回值:一個固定格式的字符串。字符串格式為:Www Mmm dd hh:mm:ss yyyy。其中Www為星期,Mmm為月份,dd為日,hh為時,mm為分,ss為秒,yyyy為年份;
3、例程:


#include<time.h>#include<stdio.h>int main(){    time_t rawtime;    struct tm * timeinfo;    time(&rawtime);    timeinfo = localtime(&rawtime);//使用localtime函數把秒數時間rawtime轉換為本地時間以tm結構體保存,并把tm結構體地址儲存到timeinfo當中    printf("當前日期為: %s",asctime(timeinfo));//使用asctime函數把tm結構體中儲存的時間轉換為字符串,并輸出    return 0;}


查看完整回答
反對 回復 2023-03-21
  • 2 回答
  • 0 關注
  • 114 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號