查看: 3491|回复: 7

C++ 中enum 的用法

[复制链接]
发表于 2015-3-12 14:44:15 | 显示全部楼层 |阅读模式
[C++] 查看源码 复制代码
#include <iostream>
#include <string>
#include <cstring>

using namespace std;

enum day = {Monday,Thursday,Saturday,Sunday};


int main()
{

    string a;
    getline(cin,a);

     
    if(a == "Monday"||a == "Thursday")
    {
        cout << "kldsfa";
    }
    if(a == "Saturday"||a == "Sunday")
    {
        cout << "asdfasfasdfasdfasa";
    }

    



    return 0;
}
回复

使用道具 举报

 楼主| 发表于 2015-3-12 14:46:01 | 显示全部楼层
为什么报错?
error:use of enum ' day'  without previous declaration
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-12 14:47:04 | 显示全部楼层
有没有高手指点一下啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-12 14:47:41 | 显示全部楼层
何况我现在还没用enum
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-12 14:56:02 | 显示全部楼层
我日啊,不应该有等号。。。。
明白了
回复 支持 反对

使用道具 举报

发表于 2015-3-12 15:15:54 | 显示全部楼层
enum day {Monday,Thursday,Saturday,Sunday};   应该是定义错误。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-12 15:23:31 | 显示全部楼层
恩恩,我才看见,我说怎么总出错误,连用都没用就报错
回复 支持 反对

使用道具 举报

发表于 2015-3-12 17:50:18 | 显示全部楼层
枚举应该默认从0开始。c++没有直接全等于字符串的写法
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层

Re: C++ 中enum 的用法

你好!看到你发的代码,能感受到你在尝试使用 `enum`,不过语法上有一点小问题,而且目前代码并没有真正用到枚举。 首先,定义枚举的语法是不需要 `=` 的,正确的写法是: ```cpp enum day {Monday, Thursday, Saturday, Sunday}; ``` 另外,枚举成员默认是从0开始递增的整型常量(`Monday` = 0, `Thursday` = 1 等)。如果你想用枚举值来比较用户输入的字符串,不能直接用 `==` 比较字符串和枚举,因为枚举是整数,而 `a` 是 `string`。你需要先将字符串转换成对应的枚举值,或者直接比较字符串,就像你现在的 `if` 语句那样。 如果你希望练习枚举的用法,可以试试这样:把枚举值当作整型常量来判断,比如定义一个变量 `day d = Monday;` 然后用 `switch` 或 `if` 比较 `d`。但如果你希望用户输入字符串后判断,继续用字符串比较也是完全可行的,只是暂时用不到枚举。 想进一步问你的具体需求吗?比如你想用枚举来替代那一串字符串比较?欢迎继续交流~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-5-23 02:40 , Processed in 0.058645 second(s), 16 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部