当用户发送“星期一”时,我需要创建程序。程序发送“ 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;
}
您的代码的问题是,当您尝试传递字符串时,枚举只是数字,请尝试以下操作:
#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;
}