黑马程序员技术交流社区

标题: 关于枚举类型的数据结构问题 [打印本页]

作者: 魏建国    时间: 2015-3-29 13:39
标题: 关于枚举类型的数据结构问题
最近做一个编程题目,定义了一个结构体,结构体里面有性别,就把性别定义成枚举了,
enum Sex {man,woman};
enum Sex sex;
原来以为很高大上 ,最后接收用户收入的性别字符用%什么都不知道,
scanf("%s",&sex);请大神解答怎么接收枚举数据。
然后我打印也不知道用什么
printf("%s",sex);
作者: 魏建国    时间: 2015-3-29 13:53
没有大神吗
作者: Fench    时间: 2015-3-30 14:45
我也是C语言小白, 说一下我的理解吧:
枚举enum类型的主要作用是当一个变量具有固定的几个取值时用枚举来定义, 主要用来提高程序的可读性,比如说
typedef enum {
    man ,
    woman,
    unknow
} Sex;

int main(int argc, char* argv[])
{
    Sex sex = unknow;

    printf("性别是:%d\n", sex);
    return 0;
}
这个代码枚举性别,3个属性man, woman, unknown都是int型,值分别是0,1,2(跟数组很像). 这样你写程序的时候如果想定义一个变量代表性别就可以上我上面说的这样定义了,这样别人一看你的程序就知道这个变量代表性别. 最后枚举里面属性都是int型,所以都用%d来输入输出.  

作者: Reliable    时间: 2015-3-30 15:15
枚举算是int型的 可以用%d 或者%i吧
作者: yllian    时间: 2015-3-30 15:53
枚举值都是整数
作者: PHXmilan    时间: 2015-3-30 18:44
枚举就是为了提供程序的可读性的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2