簡體   English   中英

在我用 C++ 編寫的程序中顯示錯誤消息

[英]Display error message in a program I made in c++

編程新手。

想添加一條消息,說明輸入錯誤之類的內容......但不知道該怎么做。

該程序可以運行,但想要添加錯誤消息,以便用戶不能按錯按鈕

嘗試過像 while 循環中的 if 語句一樣

if (input != "A" && input != "a" && input != "S" && input != "s")
cout << "not valid options << endl;

並請告訴我是否可以以任何方式使代碼更好,知道我是否以好的方式做事總是很高興的。

這是我的程序代碼

#include <cmath>
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <string>
using namespace std;

int main()
{
    locale swedish("swedish");                          // tar in svenska tecken
    locale::global(swedish);


    int marker = 100;                                       // marker som man börjar med 
    int num1, num2, num3;                                   // numren som ska slumpas senare 
    string input;                                           

    cout << "Välkommen till mitt slumptalspel!!"<< endl ;
    cout << " Detta spel går ut på att man ska få mer än 450" << endl;
    cout << "så får man mer marker och får man mindre än 450 så förlorar man marker" << endl;
    cout << " får man mer än 200 marker så vinner man !!" << endl;
    cout << " och tar markerna slut så har man förlorat" << endl;



    while (input != "A" && input != "a")
    {

        cout << "Du har  " << marker << " marker.  spela tryck [S] avsluta tryck [A]"<< endl;
        cin >>input;                                                            // här bestämmer sig spelaren för om han vill spela eller inte med s eller a
        if (input == "S" || input == "s")
        {

            num1 = rand() % 350 + 1;                                                        // här slumpas talen ut
            num2 = rand() % 350 + 1;
            num3 = rand() % 350 + 1;
            cout << "[" << num1 << "][" << num2 << "][" << num3 << "]" << endl;         // här skrivs num1 till 3 ut vad dom får för värden
            srand(time(0));


            if (num1 + num2 + num3 >= 450)                                              // om väret tillsammans blir mer än 450 
            {
                marker += 12;                                                           // lägg till 12 marker
                cout << "du vann 12 marker =) " << endl;
            }


            else
            {
                cout << " Du förlorade 50 marker" << endl;                                  // annars ta bort 50 marker

                marker -= 50;
            }

            if (marker <= 0)                                                                // om markerna är 0 eller mindre 
            {                                                                                   // så är spelet slut
                cout << " Spelet är slut du har inga marker kvar" << endl;
                return 0;
            }

            if (marker >= 200 )
            {
                cout << " du vann GRATTIS!!" << endl;                       // om man får 200 eller mer marker så vinner man och spelet avslutas sedan
                return 0;
            }


            }




    }
    cout << "Spelet avslutas " << endl;                                                                 // om man avbryter med A så avslutas det så här med detta meddelande
    return 0;
}

確實像這里有人對我說的那樣嘗試過開關,然后問題是它永遠不會停止,當marker為 0 或更少或 200 時,它應該停止但它沒有,

我做了這樣的代碼

    #include "stdafx.h"
#include <cmath>
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <string>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    locale swedish("swedish");                          // tar in svenska tecken
    locale::global(swedish);


    int marker = 100;                                       // marker som man börjar med 
    int num1, num2, num3;                                   // numren som ska slumpas senare 
    char input;
    int menu();

    cout << "Välkommen till mitt slumptalspel!!" << endl;
    cout << " Detta spel går ut på att man ska få mer än 450" << endl;
    cout << "så får man mer marker och får man mindre än 450 så förlorar man marker" << endl;
    cout << " får man mer än 200 marker så vinner man !!" << endl;
    cout << " och tar markerna slut så har man förlorat" << endl;



    do
    {


        cout << "Du har  " << marker << " marker.  spela tryck [S] avsluta tryck [A]" << endl;
        cin >> input;










        switch (input)
        {


        case 'A':

            cout << " spelet avslutas" << endl;


            return 0;



        case 'S':


            num1 = rand() % 350 + 1;                                                        // här slumpas talen ut
            num2 = rand() % 350 + 1;
            num3 = rand() % 350 + 1;
            cout << "[" << num1 << "][" << num2 << "][" << num3 << "]" << endl;         // här skrivs num1 till 3 ut vad dom får för värden
            srand(time(0));


            if (num1 + num2 + num3 >= 450)                                              // om väret tillsammans blir mer än 450 
            {
                marker += 12;                                                           // lägg till 12 marker
                cout << "du vann 12 marker =) " << endl;
                break;
            }


            else
            {
                cout << " Du förlorade 50 marker" << endl;                                  // annars ta bort 50 marker

                marker -= 50;
                break;
            }

            if (marker <= 0)                                                                // om markerna är 0 eller mindre 
            {                                                                                   // så är spelet slut
                cout << " Spelet är slut du har inga marker kvar" << endl;
                return 0;

            }

            if (marker >= 200)
            {
                cout << " du vann GRATTIS!!" << endl;                       // om man får 200 eller mer marker så vinner man och spelet avslutas sedan


                return 0;
            }






        default:

            cout << " nope inget giltigt val " << endl;                 // Om man väljer ett alternativ som inte finns så kommer detta meddelande fram

            break;



        }
    } while (input != 'q'  )

        ;

}

您可以使用 switch 語句使其更好,並且在default情況下,您可以打印所需的輸出:

switch(input)
{
case 'A':
 //Do something and break.
case 'a':
 //Do something and break.
.
.
.
default:
cout<<"not valid options" << endl;
}

我修好了它 ,

#include "stdafx.h"
#include <cmath>
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <string>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    locale swedish("swedish");                          // tar in svenska tecken
    locale::global(swedish);


    int marker = 100;                                       // marker som man börjar med 
    int num1, num2, num3;                                   // numren som ska slumpas senare 
    char input;                                         


    cout << "Välkommen till mitt slumptalspel!!" << endl;
    cout << " Detta spel går ut på att man ska få mer än 450" << endl;
    cout << "så får man mer marker och får man mindre än 450 så förlorar man marker" << endl;
    cout << " får man mer än 200 marker så vinner man !!" << endl;
    cout << " och tar markerna slut så har man förlorat" << endl;
    cout << " tre tal kommer att slumpas och varje tal kan vara mellan 1 och 350" << endl;
    cout << " LYCKA TILL!!!" << endl;




    do
    {
        if (marker <= 0)                                                                // om markerna är 0 eller mindre 
        {                                                                                   // så är spelet slut
            cout << " Spelet är slut du har inga marker kvar" << endl;
            return 0;

        }

        if (marker >= 200)
        {
            cout << " du vann GRATTIS!!" << endl;                       // om man får 200 eller mer marker så vinner man och spelet avslutas sedan


            return 0;
        }






        cout << "Du har  " << marker << " marker.  spela tryck [S] avsluta tryck [A]" << endl;
        cin >> input;










        switch (input)
        {


        case 'A':

            cout << " spelet avslutas" << endl;


            return 0;

        case 'a':

            cout << " spelet avslutas" << endl;


            return 0;

        case 'S':


            num1 = rand() % 350 + 1;                                                        // här slumpas talen ut
            num2 = rand() % 350 + 1;
            num3 = rand() % 350 + 1;
            cout << "[" << num1 << "][" << num2 << "][" << num3 << "]" << endl;         // här skrivs num1 till 3 ut vad dom får för värden
            srand(time(0));


            if (num1 + num2 + num3 >= 450)                                              // om väret tillsammans blir mer än 450 
            {
                marker += 12;                                                           // lägg till 12 marker
                cout << "du vann 12 marker =) " << endl;
                break;


            }
            else
            {



                cout << " Du förlorade 50 marker" << endl;                                  // annars ta bort 50 marker

                marker -= 50;
                break;

            }

        case 's':


            num1 = rand() % 350 + 1;                                                        // här slumpas talen ut
            num2 = rand() % 350 + 1;
            num3 = rand() % 350 + 1;
            cout << "[" << num1 << "][" << num2 << "][" << num3 << "]" << endl;         // här skrivs num1 till 3 ut vad dom får för värden
            srand(time(0));


            if (num1 + num2 + num3 >= 450)                                              // om väret tillsammans blir mer än 450 
            {
                marker += 12;                                                           // lägg till 12 marker
                cout << "du vann 12 marker =) " << endl;
                break;


            }
            else
            {



                cout << " Du förlorade 50 marker" << endl;                                  // annars ta bort 50 marker

                marker -= 50;
                break;

            }





        default:

            cout << " nope inget giltigt val försök igen " << endl;                 // Om man väljer ett alternativ som inte finns så kommer detta meddelande fram

            break;



                }
            } while (input != 'QK')

                ;



        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM