C++时间结构错误
Error in C++ time structures
我正在创建一个程序来保存当天的天气信息。在 运行 代码之后,我得到 struct tm redefined 错误。我 运行 在使用 Visual C++ 2008 作为编译器的代码块中
这是我的代码:
#include<stdio.h>
#include<string.h>
#include<time.h>
struct tm //date template
{
int tm_mday //day of month
int tm_mon; //month of year
int tm_year; //year
//char date[11];
};
struct weather
{
struct tm *wdate1;
int high_temp;
int low_temp;
int max_wind_speed;
int preciption;
char note[80];
};
int main()
{
time_t wdate;
struct weather info[3];
ctime(&wdate);
printf("%s",wdate);
return 0;
}
重新定义 struct tm - 如错误消息所述 - 正是您正在做的。 tm 结构在 time.h 中定义。您在此处的第 5-11 行再次定义了它。您应该删除此定义,或者如果您想定义一个自定义结构供您自己使用,则可以将其命名为不同的名称。
那是因为您正在重新定义一个已经在 time.h 中用相同名称 "tm" 定义的结构。如果您尝试使用相同的结构名称重新定义此模板,请不要导入
#include <time.h>
同样在 struct tm 中,您在 tm_mday 和命令
之后缺少终止符
printf("%s",wdate);
将导致错误,因为 wdate 不是 char *。您应该将最后两行合并为
printf("%s",ctime(&wdate));
希望对您有所帮助!
我正在创建一个程序来保存当天的天气信息。在 运行 代码之后,我得到 struct tm redefined 错误。我 运行 在使用 Visual C++ 2008 作为编译器的代码块中
这是我的代码:
#include<stdio.h>
#include<string.h>
#include<time.h>
struct tm //date template
{
int tm_mday //day of month
int tm_mon; //month of year
int tm_year; //year
//char date[11];
};
struct weather
{
struct tm *wdate1;
int high_temp;
int low_temp;
int max_wind_speed;
int preciption;
char note[80];
};
int main()
{
time_t wdate;
struct weather info[3];
ctime(&wdate);
printf("%s",wdate);
return 0;
}
重新定义 struct tm - 如错误消息所述 - 正是您正在做的。 tm 结构在 time.h 中定义。您在此处的第 5-11 行再次定义了它。您应该删除此定义,或者如果您想定义一个自定义结构供您自己使用,则可以将其命名为不同的名称。
那是因为您正在重新定义一个已经在 time.h 中用相同名称 "tm" 定义的结构。如果您尝试使用相同的结构名称重新定义此模板,请不要导入
#include <time.h>
同样在 struct tm 中,您在 tm_mday 和命令
之后缺少终止符 printf("%s",wdate);
将导致错误,因为 wdate 不是 char *。您应该将最后两行合并为
printf("%s",ctime(&wdate));
希望对您有所帮助!