#include <stdio.h>
enum COLOR {RED,YELLOW,GREEN};
int main(int argc, char const *argv[]){
int color = -1;
char *colorName = NULL;
printf("输入你喜欢的颜色的代码:");
scanf ("%d", &color);
switch ( color ) {
case RED: colorName = " red" ; break;
case YELLOW: colorName = "yellow" ; break;
case GREEN:colorName = "green" ; break;
default: colorName= "unknown" ; break;
}
printf("你喜欢的颜色是%s\n", colorName);
return 0;
}
报错的信息:
C:\Users\zyn\Documents\C Files\我不理解.cpp In function 'int main(int, const char**)':
9 23 C:\Users\zyn\Documents\C Files\我不理解.cpp [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
10 26 C:\Users\zyn\Documents\C Files\我不理解.cpp [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
11 24 C:\Users\zyn\Documents\C Files\我不理解.cpp [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
12 21 C:\Users\zyn\Documents\C Files\我不理解.cpp [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
运行结果:
输入你喜欢的颜色的代码:RED
你喜欢的颜色是unknown
--------------------------------
Process exited after 143 seconds with return value 0
请按任意键继续. . .
1、枚举是数字,从0开始依次递增,所以你需要输入数字才可以
2、你定义的color是int类型的没有问题,但是输入的是非int类型,所以color的值还是-1,在switch时就会走default,故最终输出的是unknown。你可以输入0 1 2来测试就可以了