在C语言中,可以使用`time.h`库中的`tm`结构体来输入时分秒。以下是一个简单的示例程序,展示了如何从用户输入中获取时分秒,并将其存储在`tm`结构体中:
```c
include include int main() { struct tm time_in, time_out; int input_seconds; // 输入秒数 printf("请输入总秒数: "); scanf("%d", &input_seconds); // 将秒数转换为tm结构体 time_in.tm_year = 0; // 年份从1900年开始 time_in.tm_mon = 0; // 月份从0开始(0表示1月) time_in.tm_mday = 0; // 日期从1日开始 time_in.tm_hour = 0; // 小时从0开始 time_in.tm_min = 0; // 分钟从0开始 time_in.tm_sec = input_seconds; // 秒数 // 转换为本地时间 time_t time_in_seconds = mktime(&time_in); // 将本地时间转换为tm结构体 time_out = *localtime(&time_in_seconds); // 输出结果 printf("转换后的时间为: %d 年 %d 月 %d 日 %d 时 %d 分 %d 秒\n", time_out.tm_year + 1900, time_out.tm_mon + 1, time_out.tm_mday, time_out.tm_hour, time_out.tm_min, time_out.tm_sec); return 0; } ``` 在这个程序中,我们首先定义了一个`tm`结构体`time_in`来存储用户输入的秒数。然后,我们使用`mktime`函数将秒数转换为`time_t`类型的时间戳,再使用`localtime`函数将时间戳转换为本地时间的`tm`结构体`time_out`。最后,我们输出转换后的时间。 请注意,`tm`结构体中的年份是从1900年开始,月份是从0开始(0表示1月),日期是从1日开始,小时、分钟和秒数是从0开始。因此,在设置`tm`结构体的成员时,需要根据这些规则进行赋值。