C++ 枚举类型一周中的天数

C++ 枚举类型一周中的天数,c++,C++,我需要创建程序时,用户发送“星期一”。程序发送“1”。 “星期二”=2 e.t.c 我的代码: #include <iostream> #include <string> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; enum DAY {monday = 1, Tuesd

我需要创建程序时,用户发送“星期一”。程序发送“1”。 “星期二”=2 e.t.c

我的代码:

#include <iostream>
#include <string>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;


enum DAY {monday = 1, Tuesday, Wednesday, cThursday, Thursday};

int main(int argc, char** argv) {
    string x;
    cout << "Day: " << endl;
    cin >> x;
    DAY neww;
    neww = x;
    cout << neww << endl;
    return 0;
}
#包括
#包括
/*使用控制台暂停器运行此程序,或添加您自己的getch、system(“暂停”)或输入循环*/
使用名称空间std;
枚举日{星期一=1,星期二,星期三,星期四,星期四};
int main(int argc,字符**argv){
字符串x;
cout x;
DAY neww;
neww=x;

cout代码的问题在于,当您尝试传递字符串时,枚举只是数字,请尝试以下操作:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

enum DAY {
    Monday = 1,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday,
    INCORRECTDATEFORMAT
};

DAY getDay(string& d)
{
    std::transform(d.begin(), d.end(), d.begin(), ::tolower);
    if(d == "monday")
        return DAY::Monday;
    else if(d == "tuesday")
        return DAY::Tuesday;
    else if(d == "wednesday")
        return DAY::Wednesday;
    else if(d == "thursday")
        return DAY::Thursday;
    else if(d == "friday")
        return DAY::Friday;
    else if(d == "saturday")
        return DAY::Saturday;
    else if(d == "sunday")
        return DAY::Sunday;
    else
        return DAY::INCORRECTDATEFORMAT;
}
int main()
{
    string d;
    cout << "Day : ";
    cin >> d;
    cout << getDay(d) << endl;
}
#包括
#包括
#包括
使用名称空间std;
枚举日{
星期一=1,
星期二,
星期三,
星期四,
星期五,
星期六,
星期天,
不正确的日期格式
};
DAY getDay(字符串和d)
{
std::transform(d.begin(),d.end(),d.begin(),::tolower);
如果(d==“星期一”)
返回日:星期一;
否则,如果(d==“星期二”)
返回日:星期二;
否则,如果(d==“星期三”)
返回日:星期三;
否则,如果(d==“星期四”)
返回日:星期四;
否则,如果(d==“星期五”)
返回日:星期五;
否则,如果(d==“星期六”)
返回日:星期六;
否则,如果(d==“星期日”)
返回日:星期日;
其他的
返回日期::不正确的日期格式;
}
int main()
{
字符串d;
cout>d;

cout代码的问题在于,当您尝试传递字符串时,枚举只是数字,请尝试以下操作:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

enum DAY {
    Monday = 1,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday,
    INCORRECTDATEFORMAT
};

DAY getDay(string& d)
{
    std::transform(d.begin(), d.end(), d.begin(), ::tolower);
    if(d == "monday")
        return DAY::Monday;
    else if(d == "tuesday")
        return DAY::Tuesday;
    else if(d == "wednesday")
        return DAY::Wednesday;
    else if(d == "thursday")
        return DAY::Thursday;
    else if(d == "friday")
        return DAY::Friday;
    else if(d == "saturday")
        return DAY::Saturday;
    else if(d == "sunday")
        return DAY::Sunday;
    else
        return DAY::INCORRECTDATEFORMAT;
}
int main()
{
    string d;
    cout << "Day : ";
    cin >> d;
    cout << getDay(d) << endl;
}
#包括
#包括
#包括
使用名称空间std;
枚举日{
星期一=1,
星期二,
星期三,
星期四,
星期五,
星期六,
星期天,
不正确的日期格式
};
DAY getDay(字符串和d)
{
std::transform(d.begin(),d.end(),d.begin(),::tolower);
如果(d==“星期一”)
返回日:星期一;
否则,如果(d==“星期二”)
返回日:星期二;
否则,如果(d==“星期三”)
返回日:星期三;
否则,如果(d==“星期四”)
返回日:星期四;
否则,如果(d==“星期五”)
返回日:星期五;
否则,如果(d==“星期六”)
返回日:星期六;
否则,如果(d==“星期日”)
返回日:星期日;
其他的
返回日期::不正确的日期格式;
}
int main()
{
字符串d;
cout>d;

@ArdentCoder有什么想法吗?aliberro的回答应该会有所帮助you@ArdentCoder你有什么想法吗?阿利贝罗的回答应该可以帮助你不用谢我,只是永远不要忘记编码和使用你所有的分号(;)不用谢我,只是永远不要忘记编码和使用你所有的分号(;)