菜单的嵌套循环(基本c ++)

时间:2013-10-01 22:02:12

标签: c++ variables loops nested

我遇到了错误,他们说a,q,h等不是声明变量,但我不知道如何解决这个问题。这是我的代码示例。

我也遇到一个错误,它在while循环中无法识别userinp,但是我不确定如何将while循环外部的变量存储转移到while循环内而不声明全局变量,我想避免。

最后一个问题:我希望能够在每个菜单项后立即返回主菜单,但我不确定该用什么。

非常感谢任何帮助!

//Runs a program with a menu that the user can navigate through different options with via text input

#include <iostream>
#include <iomanip>
#include <algorithm>
#include <ctype.h> 
#include <string>
using namespace std;

int main()
{
    int userinp;
    cout<<"Here is the menu:" << endl;
    cout<<"Help(H)      addIntegers(A)      subDoubles(D)           Quit(Q)";

    cin >> userinp;
    userinp = tolower(userinp);
    while userinp != q //loop while no q is input
    {
        if userinp == h
        {   
            cout <<"This is the help menu. Upon returning to the main menu, input A or a to add 2 intergers." << endl;
            cout <<"Input D or d to subtract 2 doubles. Input Q or q to quit.";
        }
        if userinp == a
        {
            int a, b, result;
            cout <<"Enter two integers:";
            cin << a << b;
            result = a + b;
            cout << "The sum of " << a << " + " << b << " = " << result;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

试试这个:

while(userinp != 'q') {

而且:

if(userinp == 'h')

而且:

if(userinp == 'a')

等,您可能希望将userinp声明为char而不是int

如果要比较文字字符,则必须使用单引号。如果要比较文字字符串,则需要双引号。唯一比较文字数字而不使用引号。

您的输入也有错误。您的>>应为<<。将>>cin一起使用,并将<<cout一起使用。

答案 1 :(得分:0)

代码问题: 你希望用户输入是一个字符,但你已声明为整数 2)if的条件应在括号内