Jag har i skolarbetet gjort en miniräknare som skall använda funktioner men har problem med returvärdet ifrån en funktion. Se koden nedan:
Kod: Markera allt
char felkontroll(cOperator)
{
/* Nu kontrollerar vi om användaren har anget rätt räknesätt i raden ovan, om det
är fel så frågar programmet efter ett korrekt operator. Denna funktion håller kvar
användaren så länge som det är fel tecken i inmatningen*/
while (TRUE){
if ((cOperator == '+') || (cOperator == '-') || (cOperator == '*') || (cOperator == '/'))
return;
else{
printf("Du har angett felaktigt r\x84knes\x84tt, korrekta \x84r: +, -, *, /\n");
printf("Ange korrekt r\x84knes\x84tt och avsluta med enter!\n");
scanf("%c", &cOperator);
fflush(stdin);
return cOperator;}}
}
Om jag exempelvis har skrivit 5 h 5, då reagerar felkontrollen och vill att jag matar in rätt, skriver då + men får tillbaka h.......
Vart har jag gjort fel?