在切换情况下热输入同时运行两个代码块(后续)

The link to my previous question

在我以前的文章中,我试图弄清楚如何在用户热门输入我的程序时做出案例说明。类似地,在我的一些修复中,它运行正确的块,但是在输入了内部案例代码块的值之后,它随后运行了热输入案例。

我已经成功捕获了热输入并为其指定了一个字符大小写,但是由于某种原因,它中断了连续的菜单导航尝试。

例如,第一次迭代工作完美,但是随后的尝试导致每次输入后菜单循环,而在switch / case块中未显示任何内容。

我尝试更改所有案例'#'而不是#,希望这可以使其与用于选项变量的char变量类型配合使用。

我已经尝试在.get()之前使用cin.clear()再次清除cin缓冲区,并尝试使用cin.ignore()进行相同操作,但均未产生结果。

Menu()函数,用于显示导航文本,接受输入并将其作为char返回。它包装在do {} while();中。循环,因此它将一直运行直到满足退出条件为止。

char Menu() {
    int option; 
    cout << "\nWelcome to my coffee shop!" << endl;
    cout << "\nPlease select an item you would like to order: " << endl;
    cout << "1. Coffee" << endl;
    cout << "2. Tea" << endl;
    cout << "3. Soda" << endl;
    cout << "4. Juice" << endl;
    cout << "5. Special Item" << endl;
    cout << "9. Exit" << endl;

    option = cin.get();

    if (option == '\n') {
        option = 0;
    }
    return option; 
}

对于整个代码,我已将其发布在PasteBin中,以使该帖子不会充满200行以上的代码。

Here is the code in its entirety

没有错误,但是我必须缺少这些功能的工作原理的一部分。

在此输出中,请注意,我不会在预期大小写的末尾与热输入大小写的错误运行之间输入另一个整数。

Coffees cost $2.5 each.

How many Coffees would you like? 5
5 Coffees have been added to your order!
Coffee Shop Ordering System

Please input the desired menu item. When your order is finished,press ENTER.
1. Coffee
2. Tea
3. Soda
4. Juice
5. Special Item

9. Exit


===== Receipt =====


Coffee (5)
$2.5 x 5 = $12.5
============================

Total = $12.5
buxianwangluo 回答:在切换情况下热输入同时运行两个代码块(后续)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3163574.html

大家都在问