Sitter och arbetar med lösningar för att kunna felhantera ett tal som matas in via cin. Detta är lösningen jag håller på med just nu.
Detta är anropande kodsnutt:
Kod: Markera allt
cout << "Ange vilket tal du vill kolla upp till, avsluta med enter: ";
do
{
cin >> cInput;
if(FelHantInMatning(cInput))
{
break;
}
else
{
cout << "Du har angett en felaktigt inmatning, prova igen: ";
cin >> cInput;
}
} while(true);
siKandidat = int(cInput); // Detta gör om char typen till en int
Kod: Markera allt
// Funktion för felhantering av inmatningen, den tar en char inmatning och kollar med isdigits.
bool FelHantInMatning(char *cInput)
{
for(short int i = 0; cInput[i] != '\0'; i++)
{
if(!isdigit(cInput[i]))
{
return false;
}
}
return true;
}
Är det någon som kan hjälpa mig med var det blir problem, jag har en aning men vet såfall inte hur jag ska fixa det. Jag har aldrig kunnat få char att ta emot fler än 1 bokstav eller siffra men i övningsboken så kör dom så och det fungerar, antingen gör jag fel eller så är det min kompilator VisualStudio express 2010 som strular...
// ZerQ