Ny lösning på felhantering av int men problem igen..[LÖST]
Postat: 08 maj 2014, 10:40
Hej
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:
Och detta är funktionen som tar emot anropet och skall göra felkontrollen:
Jag får ingen kompilator varning vid kompilering men så fort jag trycker enter vid inmatningen så får jag Access violation och programmet bryter. Jag har försökt sätta breakpoints för att se vart i koden det blir problem men hittar inte rätt.
Ä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
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