A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魏建国 中级黑马   /  2015-3-29 13:39  /  2128 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最近做一个编程题目,定义了一个结构体,结构体里面有性别,就把性别定义成枚举了,
enum Sex {man,woman};
enum Sex sex;
原来以为很高大上 ,最后接收用户收入的性别字符用%什么都不知道,
scanf("%s",&sex);请大神解答怎么接收枚举数据。
然后我打印也不知道用什么
printf("%s",sex);

5 个回复

倒序浏览
没有大神吗
回复 使用道具 举报
我也是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来输入输出.  
回复 使用道具 举报
枚举算是int型的 可以用%d 或者%i吧
回复 使用道具 举报
枚举值都是整数
回复 使用道具 举报
枚举就是为了提供程序的可读性的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马