#include <stdio.h> #include <time.h> int main() { struct tm* nowshijian; struct tm* shijian() { time_t current_time = time(NULL); struct tm* time_info = localtime(¤t_time); return time_info; } nowshijian=time_info; printf("\t\t\t\t进入时间: %04d-%02d-%02d %02d:%02d:%02d\n", nowshijian>tm_year + 1900, nowshijian->tm_mon + 1, nowshijian->tm_mday, nowshijian->tm_hour, nowshijian->tm_min, nowshijian->tm_sec); return 0; }为什么错了
时间: 2024-03-03 21:49:00 浏览: 83
这段代码有几个错误:
1. 在 `shijian()` 函数中,`time_info` 是一个局部变量,只能在函数内部使用,因此在 `main()` 函数中不能直接使用它。你可以将 `time_info` 作为函数的返回值,然后将返回值赋值给 `nowshijian`。
2. `nowshijian` 是一个指向 `struct tm` 类型的指针,因此你不能直接将 `time_info` 赋值给它,需要使用 `*` 运算符来获取 `time_info` 的值。
下面是修改后的代码:
```c
#include <stdio.h>
#include <time.h>
struct tm* shijian() {
time_t current_time = time(NULL);
struct tm* time_info = localtime(¤t_time);
return time_info;
}
int main() {
struct tm* nowshijian = shijian();
printf("\t\t\t\t进入时间: %04d-%02d-%02d %02d:%02d:%02d\n",
nowshijian->tm_year + 1900, nowshijian->tm_mon + 1, nowshijian->tm_mday,
nowshijian->tm_hour, nowshijian->tm_min, nowshijian->tm_sec);
return 0;
}
```
这个程序的作用是获取当前时间,并输出格式化后的时间字符串。
阅读全文