C++ 显示基于饮食限制的餐厅选项

C++ 显示基于饮食限制的餐厅选项,c++,C++,这是一个相当基本的问题,但出于某种原因,我不能把它放在一起。我想做的是让用户输入关于饮食限制的Y/N。例如: 你们聚会上有人吃素吗?Y 你们队有人是素食主义者吗?N 你们队有人不含麸质吗?Y 以下是您的餐厅选择: 大街披萨公司 街角咖啡馆 厨师的厨房 我尝试了以下几点:(我仍然是C++新手,所以请原谅这个问题。 char Y; int vegan; int vegetarian; int glutenFree; int restrictions; cout << "Is anyon

这是一个相当基本的问题,但出于某种原因,我不能把它放在一起。我想做的是让用户输入关于饮食限制的Y/N。例如:

你们聚会上有人吃素吗?Y 你们队有人是素食主义者吗?N 你们队有人不含麸质吗?Y

以下是您的餐厅选择: 大街披萨公司 街角咖啡馆 厨师的厨房

我尝试了以下几点:(我仍然是C++新手,所以请原谅这个问题。

char Y;
int vegan;
int vegetarian;
int glutenFree;
int restrictions;

cout << "Is anyone in your party vegan? (Y/N)" << endl;
cin >> vegan;

cout << "Is anyone in your party vegetarian? (Y/N)" << endl;
cin >> vegetarian;

cout << "Is anyone in your party gluten free? (Y/N)" << endl;
cin >> glutenFree;


switch (restrictions) {
    case 'a':
        if(vegan == Y)
            cout << "The following resturants offer vegan options" << endl << "Corner Café, The Chef’s Kitchen" << endl;
        break;

    case 'b':
        cout << "Is anyone in your party vegetarian? (Y/N)" << endl;
        if(vegetarian == Y)
            cout << "The following resturants offer vegetarian options" << endl << "Main Street Pizza Company, Corner Café, Mama’s Fine Italian, The Chef’s Kitchen" << endl;
            break;

    case 'c':
        cout << "Is anyone in your party gluten free? (Y/N)" << endl;
        if(glutenFree == Y)
            cout << "The following resturants offer gluten-free options" << endl << "Main Street Pizza Company,The Chef’s Kitchen, Corner Café" << endl;
            break;
chary;
素食主义者;
素食者;
无麸质;
智力限制;
不能吃素;
不能吃素;
无麸质;
开关(限制){
案例“a”:
如果(纯素==Y)

cout首先,
Y
未初始化,因此您可能需要执行类似于
chary='Y'
的操作

然后在您的
开关
语句中,您不包括条件
(素食者==Y)
(素食者==Y)
(麸质自由==Y)
未满足的情况。因此,只有在用户回答
Y
时,您才会得到输出。如果他选择
N
,则不会显示任何内容


另外,如果你想存储
char
s,我看不出将它们存储为
int
s的理由。你应该让
vegan
素食者
无麸质
char
s。

限制应该是什么?具体说明问题是什么。你有错误吗?限制应该是素食者,无麸质,素食。至于错误,实际上是一个错误,但一旦它询问第一个问题,我就可以输入Y,它只运行代码的其余部分,而不需要我为其他问题输入Y或N。
限制是一个整数变量,但您要将其与字符进行比较。此外,您不需要初始化它,也不需要在
switch
语句。因此,为了解决当用户输入'N'时没有显示的问题,我可以添加一个else if语句?感谢您的帮助!@zleff是的,您应该使用
char
来存储
chars
,请参见编辑后的答案。这比简单的“为什么存储为
int
”更糟糕一些
cin>
int
将不接受字母,这使得用户对此程序的输入有点神秘。要获得
'a'
,他们可能必须键入97。