0

我遇到了错误,他们说 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;
        }
    }
}
4

2 回答 2

1

尝试这个:

while(userinp != 'q') {

和这个:

if(userinp == 'h')

和这个:

if(userinp == 'a')

等等,你可能想声明userinp为 achar而不是int.

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

您的输入也有错误。你>>应该是<<>>cin<<一起使用cout

于 2013-10-01T22:04:10.400 回答
0

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

于 2013-10-01T22:06:59.297 回答