简体   繁体   English

在我用 C++ 编写的程序中显示错误消息

[英]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尝试过像 while 循环中的 if 语句一样

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,确实像这里有人对我说的那样尝试过开关,然后问题是它永远不会停止,当marker为 0 或更少或 200 时,它应该停止但它没有,

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 语句使其更好,并且在default情况下,您可以打印所需的输出:

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

                ;



        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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