标签: c casting c99
我有一个枚举my_enum定义如下:
my_enum
typedef enum { A = 'A', B = 'B', C = 'C', } my_enum;
现在,我正在尝试将stdin中的值读入my_enum类型的变量中:
stdin
my_enum data; scanf("%c", (char*)&data);
有趣的是,有时,该值已正确转换,但有时我会随机输入数值。
请您解释一下为什么会发生以及如何解决?谢谢。