我在C中有一个枚举,如下所示:
typedef enum {
idle,
backup,
charge,
} ENUM_LUMI_STATE;
并且我具有以下功能:
ENUM_LUMI_STATE controllerGetState(void) {
return idle;
}
我想在这里打印:
printf("the current status of the system is %s \r\n", controllerGetState());
如您在此处看到的,结果是晦涩的:
系统当前状态为þqst
我要打印的系统当前状态为“空闲”。
你能告诉我如何吗?
最佳答案
controllerGetState(void)函数返回一个枚举,而不是字符串。因此,将%s用作返回值将返回垃圾。您可以使用%d来获取值,在这种情况下,该值将为0。
详细的答案在How to convert enum names to string in c中给出