转换为枚举类型会导致C中的错误值

时间:2018-11-23 16:08:20

标签: c casting c99

我有一个枚举my_enum定义如下:

typedef enum {
  A = 'A',
  B = 'B',
  C = 'C',
} my_enum;

现在,我正在尝试将stdin中的值读入my_enum类型的变量中:

my_enum data;
scanf("%c", (char*)&data);

有趣的是,有时,该值已正确转换,但有时我会随机输入数值。

请您解释一下为什么会发生以及如何解决?谢谢。

0 个答案:

没有答案