简体   繁体   中英

Display error message in a program I made in c++

Newbie in programming.

Want to add a message that say something like wrong input .. but not sure how to do it.

The program works but want to add error message so the user can't press wrong button

have tried like an if statement inside the while loop like

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

and please tell if I can make the code better in any way , always good to know if i am doing things in a good way or not.

here is my code to the program

#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;
}

Did try an switch as someone here said to me, then the problem is that it never stops, when the marker is 0 or less or 200 it should stop but it doesent,

I did the code like this

    #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'  )

        ;

}

You can use switch statements to make it better, and in the default case, you can print your desired output:

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

I fixed it ,

#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')

                ;



        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM