如何将一个整数赋值给一个枚举型变量?

wonderfull_zhb 2008-09-16 09:51:15
typedef enum
{
student= 1,
worker,
teacher,
doctor
} Peopletype;

现有一值为整数i,如何将它赋值给枚举型变量a,并用printf语句输出呢?

int i=2;
Peopletype a;
...全文
3548 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
就呆在云上 2008-09-19
  • 打赏
  • 举报
回复
要么学习2楼的使用构造函数
要么就用强制类型转换:
#include <iostream> 
using namespace std;

typedef enum
{
student= 1,
worker,
teacher,
doctor
} Peopletype;

void main(void)
{
Peopletype a = static_cast<Peopletype>(2);
printf("%d",a);
}

如果你的转化值不在枚举类型包含的值里面就会出未定义的错误的
太乙 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lann64 的回复:]
引用 8 楼 wonderfull_zhb 的回复:
typedef enum
{
student= 1,
worker,
teacher,
doctor
} Peopletype;

//现有一值为整数i,如何将它赋值给枚举型变量a,并用printf语句输出

printf("",a);

要求输出结果为:

a 是 teacher

自己弄个case语句,挨个比较了。
[/Quote]

要不用map也行!
lann64 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wonderfull_zhb 的回复:]
typedef enum
{
student= 1,
worker,
teacher,
doctor
} Peopletype;

//现有一值为整数i,如何将它赋值给枚举型变量a,并用printf语句输出

printf("",a);

要求输出结果为:

a 是 teacher
[/Quote]
自己弄个case语句,挨个比较了。
lyle3 2008-09-19
  • 打赏
  • 举报
回复
符合数值范围的,直接强制类型转换不就好了吗。。
devil_zuiai 2008-09-19
  • 打赏
  • 举报
回复
if (i == teacher)
{
printf("teacher");
}
whuyotc 2008-09-19
  • 打赏
  • 举报
回复
学习了
wonderfull_zhb 2008-09-18
  • 打赏
  • 举报
回复
现在只能得到枚举变量teacher对应的整形值3,如何反向输出3对应的枚举变量名teacher呢?

如何用printf输出?

wonderfull_zhb 2008-09-18
  • 打赏
  • 举报
回复
现在只知道一个整形值 i=3,如何得到它所对应的枚举型变量名teacher呢??
wonderfull_zhb 2008-09-18
  • 打赏
  • 举报
回复
typedef enum
{
student= 1,
worker,
teacher,
doctor
} Peopletype;

//现有一值为整数i,如何将它赋值给枚举型变量a,并用printf语句输出

printf("",a);

要求输出结果为:

a 是 teacher

ysmashimaro 2008-09-16
  • 打赏
  • 举报
回复
可以直接在初始化时用整数赋值
gezichong 2008-09-16
  • 打赏
  • 举报
回复
我认为正常情况下都是运用权举的值来取数组中的值等。。。

反过来应该要进行转换吧。。
yangkunhenry 2008-09-16
  • 打赏
  • 举报
回复
整型和枚举型的类型不一样,要强制转换的
wuyu637 2008-09-16
  • 打赏
  • 举报
回复
整数值不能直接赋给枚举变量;如果要将整数赋值给枚举变量,应进行强制类型转换。
K行天下 2008-09-16
  • 打赏
  • 举报
回复

#include <stdio.h>

typedef enum
{
student= 1,
worker,
teacher,
doctor
} Peopletype;

//现有一值为整数i,如何将它赋值给枚举型变量a,并用printf语句输出呢?
int main()
{
int i=2;
Peopletype a =Peopletype(i);
printf("%d\n",a);
}

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧