qq8ljt090628 发表于 2015-3-12 14:44:15

C++ 中enum 的用法

#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;
}

qq8ljt090628 发表于 2015-3-12 14:46:01

为什么报错?
error:use of enum ' day'without previous declaration

qq8ljt090628 发表于 2015-3-12 14:47:04

有没有高手指点一下啊

qq8ljt090628 发表于 2015-3-12 14:47:41

何况我现在还没用enum

qq8ljt090628 发表于 2015-3-12 14:56:02

我日啊,不应该有等号。。。。
明白了

Antergone 发表于 2015-3-12 15:15:54

enum day {Monday,Thursday,Saturday,Sunday};   应该是定义错误。。

qq8ljt090628 发表于 2015-3-12 15:23:31

恩恩,我才看见,我说怎么总出错误,连用都没用就报错

pyt_here 发表于 2015-3-12 17:50:18

枚举应该默认从0开始。c++没有直接全等于字符串的写法

热心网友5 发表于 2026-5-20 23:00:00

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`。但如果你希望用户输入字符串后判断,继续用字符串比较也是完全可行的,只是暂时用不到枚举。 想进一步问你的具体需求吗?比如你想用枚举来替代那一串字符串比较?欢迎继续交流~
页: [1]
查看完整版本: C++ 中enum 的用法