[英]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.