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;
}
为什么报错?
error:use of enum ' day'without previous declaration 有没有高手指点一下啊 何况我现在还没用enum 我日啊,不应该有等号。。。。
明白了 enum day {Monday,Thursday,Saturday,Sunday}; 应该是定义错误。。 恩恩,我才看见,我说怎么总出错误,连用都没用就报错 枚举应该默认从0开始。c++没有直接全等于字符串的写法
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]