将用户输入与结构数组中的值进行比较

Posted

技术标签:

【中文标题】将用户输入与结构数组中的值进行比较【英文标题】:Comparing user input to value in struct array 【发布时间】:2020-04-14 03:45:17 【问题描述】:

我正在为一个班级开展项目,我必须在其中创建一个销售点系统。我正在尝试遍历该范围,直到用户输入选项(例如“B”)与 menuOption 匹配。我试过'strcmp'无济于事,而且我对C++还很陌生,所以我的知识仍然很薄弱。我的侦探技能也没有产生任何解决方案,因此将不胜感激。

我知道下面的代码是错误的,因为它试图比较“char”和“char *”,但这是我想要完成的想法。

for (int i = 0; i < MAX; i++) 
    if ( choice[0] == options[i].menuOption) 
        subTotal += options[i].price
        itemsOrdered.push_back(options[i].optionName)
    

也许我做错了。

struct Menu 
    char menuOption[1];
    string optionName;
    float price;
;

也可以选择:

char choice[1]

【问题讨论】:

【参考方案1】:

由于您决定选择和菜单选项都是一个 char ,因此只能像这样使用 char :

struct Menu 
    char menuOption;
    string optionName;
    float price;
;

char choice;

然后你像这样比较:

if ( choice == options[i].menuOption)

如果您希望您的代码按原样工作,只需更改此行:

if ( choice[0] == options[i].menuOption)

收件人:

if ( choice[0] == options[i].menuOption[0])

【讨论】:

天哪,我是个白痴……非常感谢@dev65,我很感激。

以上是关于将用户输入与结构数组中的值进行比较的主要内容,如果未能解决你的问题,请参考以下文章

比较用户登录输入的数组中的用户注册信息

如何将用户输入与2个不同的表进行比较

如何使用文件填充数组并将其与用户输入 c++ 进行比较

登录 - 将用户输入与数据库进行比较

我如何将当前日期与日期选择器中的用户输入日期进行比较

让 Python 正确地将用户名输入与 MySQL DB 中的用户名进行比较的问题