gpt4 book ai didi

c - 如何打印结构的各个成员

转载 作者:行者123 更新时间:2023-12-04 10:16:00 26 4
gpt4 key购买 nike

我需要按以下格式打印出当前日期:今天是星期三 - 2012 年 9 月 7 日。我知道我将不得不使用该结构

 struct tm* time_info;

我可以使用 strftime() 轻松完成此操作,但是,我的任务是不使用 strftime() 并直接使用 printf 语句提取结构的成员。我似乎无法让它正常工作。有什么线索吗?这是我当前的代码:

 #include <stdio.h>
#include <sys/types.h>
#include <time.h>
#include <stdlib.h>

/* localtime example */
#include <stdio.h>
#include <time.h>

int main (void)
{
time_t t;
char buffer[40];
struct tm* tm_info;

time(&t);
tm_info = localtime(&t);
strftime(buffer, 40, " Today is %A - %B %e, %Y", tm_info);
puts(buffer);


return 0;
}

代替

 strftime(buffer, 40, " Today is %A - %B %e, %Y", tm_info); 

我需要

 printf("Today is %s, struct members info in the correct format);

最佳答案

struct tm 至少有这些 members

int    tm_sec   Seconds [0,60]. int    tm_min   Minutes [0,59]. int    tm_hour  Hour [0,23]. int    tm_mday  Day of month [1,31]. int    tm_mon   Month of year [0,11]. int    tm_year  Years since 1900. int    tm_wday  Day of week [0,6] (Sunday =0). int    tm_yday  Day of year [0,365]. int    tm_isdst Daylight Savings flag. 

So now you can do e.g.

printf("Today is %d - %d %d, %d", tm_info->tm_wday, 
tm_info->tm_mon,
tm->tm_mday,
1900 + tm_info->tm_year);

这当然会以数字的形式打印出月份和星期几,我会留给你创建一个简单的查找表来获取匹配的英文单词。使用数组,以便您可以映射,例如索引 0 到“星期日”,索引 1 到“星期一”等等。

关于c - 如何打印结构的各个成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12287466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com