Hejsan! 1. Standardfilerna heter numera utan filändelse, dvs <iostream> istället för <iostream.h>Rundgång...(runtimeloop)
Programmet under ska jag gissa på ett tal mellan 1-10.
Det är inga problem.
Men skulle jag ex. mata in en bokstav i ställe för en siffra,
så blir det rungång, så att säga.
Hur ska man programmera för att undvika detta.
Ps. Är nybörjare i C++.
Mvh
Urban
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include "iodos.h"
int main()
{
dos_console();
srand (time (0));
int tal = rand()%10 + 1, gissattal, antal = 0;
gissa:
cout << "gissa tal: ";
cin >> gissattal;
antal = antal + 1;
if (gissattal == tal)
{
cout << "Du gissade rätt!! ";
cout << "Du gissade " << antal << " gånger";
}
else
{
cout << "fel gissa igen !! ";
goto gissa;
}
return 0;
}Sv: Rundgång...(runtimeloop)
2. Filen conio.h bör du undvika som pesten, ungefär. Du använder den inte, och framför allt så är den inte del av standarden, och tillför inget direkt.
3. Använd inte labels och goto. Det får vilja till ganska extrema förhållanden för att det någonsin ska vara aktuellt. Programmera i ett par tre år utan, och börja sen fundera på när du skulle behöva den.
Det du ska använda är en while-loop.
while (någonting är sant)
{
gör något
}
Till exempel
std::string s;
while(s != "quit")
{
std::cout << "Skriv något!" << std::endl;
std::cin >> s;
}
När du har skrivit om programmet till en loop så har problemet förmodligen försvunnit.