#include <iostream>
#include <array>
#include <sring>
#include <cctype>
#include <cmath>
#include <locale>
#include <algorithm>
using namespace std;
const int MAX_INGREDIENTES_PIZZA=20;
typedef array<int, MAX_INGREDIENTES_PIZZA> TIngrediente;
//enum ingredientes {TOMATE,QUESO,NATA,CEBOLLA,POLLO,HUEVO,SALAMI,ANCHOA,BACON,GAMBA};
TIngrediente leer_ingrediente(){
TIngrediente r;
enum ingredientes {TOMATE,
QUESO,
NATA,
CEBOLLA,
POLLO,
HUEVO,
SALAMI,
ANCHOA,
BACON,
GAMBA};
char ingrediente;
getline(cin,ingrediente);
for (int i=0; i<MAX_INGREDIENTES_PIZZA-1;i++){
string ingrediente[i]=tolower(ingrediente[p]);
}
if(ingrediente=="queso")
else if(ingrediente=="nata")
else if (ingrediente=="cebolla")
else if (ingrediente=="pollo")
else if (ingrediente=="huevo")
else if (ingrediente=="salami")
else if (ingrediente=="anchoa")
else if(ingrediente=="bacon")
else if (ingrediente=="gamba")
return r;
}
我不知道我是应该将enum{}
声明为全球,还是仅在leer_ingredientes()
内
另一件事是,正如我所说,我不知道该怎么做(将输入与enum()相匹配):
char ingrediente;
getline(cin,ingrediente);
for (int i=0; i<MAX_INGREDIENTES_PIZZA-1;i++){
string ingrediente[i]=tolower(ingrediente[p]);
}
if(ingrediente=="queso")
else if(ingrediente=="nata")
else if (ingrediente=="cebolla")
else if (ingrediente=="pollo")
else if (ingrediente=="huevo")
else if (ingrediente=="salami")
else if (ingrediente=="anchoa")
else if(ingrediente=="bacon")
else if (ingrediente=="gamba")
return r;
有人能帮助我吗?
答案 0 :(得分:0)
好的做法是编写一个函数将字符串转换为ingrediente。 这将如下所示。假设枚举在您的平台上具有基本类型int
int strToIngrediente(const char *ingr)
{
if(!strcmp(ingr, "queso"))
return QUESO;
if(!strcmp(ingr, "queso"))
return QUESO;
if(!strcmp(ingr, "nata"))
return NATA;
.
.
.
}