我使用的是枚举类型声明。我无法打印出来。
到目前为止,我已经编写了以下代码。问题是如何打印枚举类型变量?
#include <stdio.h>
int main()
{
enum day {monday,tuesday,wednwsday,thrusday,friday,saturday,sunday};
enum day week_st, week_end;
week_st = monday;
week_end = friday;
if(week_st == monday)
{
printf("%s\n",week_end);
}
return 0;
}
答案 0 :(得分:1)
你不能那样使用枚举,
enum day {monday,tuesday,wednwsday,thrusday,friday,saturday,sunday};
你的这一行会初始化像这样的值
周一= 0;
星期二= 1;等等
enum day week_st, week_end;
你的这一行将声明两个对象枚举day
,枚举器用于给变量赋予常量值;
不显示字符串。
答案 1 :(得分:1)
有几种方法可以打印enum
。
将其打印为整数。这是一个简单的选择。
printf("%d",week_end);
打印它的字符串表示形式。此选项需要一种方法将enum
的整数值映射到字符串。
定义一个字符串数组。
char const* weekDays[] = {"Monday", ..., "Saturday", "Sunday"};
使用字符串数组和枚举来打印字符串。
printf("%s",weekDays[week_end]);
答案 2 :(得分:1)
枚举不是字符串。 printf(&#34;%d&#34;,week_end)将输出:4
参考http://www.cplusplus.com/doc/tutorial/other_data_types/: &#34;使用枚举声明的枚举类型的值可以隐式转换为整数类型int,反之亦然。事实上,这种枚举的元素总是在内部分配一个整数数字等价,它们成为别名。如果没有另外指定,则等于第一个可能值的整数值为0,等于第二个的整数值为1,第三个为2,依此类推...因此,在上面定义的数据类型colors_t中,黑色等于0,蓝色等于1,绿色等于2,依此类推......&#34;
答案 3 :(得分:0)
枚举类型是int,因此请尝试使用int的格式说明符进行打印 的printf( “%d”,week_end);
但是在你的代码中,如果条件被评估为false,那么它就不会去打印语句