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として宣言する必要があります。charint

リテラル文字を比較する場合は、一重引用符を使用する必要があります。リテラル文字列を比較する場合は、二重引用符が必要です。引用符を使用せずにリテラル数値のみを比較します。

また、入力に誤りがあります。あなたの>>はずです<<>>と一緒に使用し、 と一緒cinに使用<<してくださいcout

于 2013-10-01T22:04:10.400 に答える
0

コードの問題: userinp が文字であることを期待しているが、整数として宣言されている 2) if の条件を括弧で囲む必要がある

于 2013-10-01T22:06:59.297 に答える