Krångel med return värde i C!
Postat: 05 nov 2007, 14:10
Hej
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:
Detta är en nekel felkontroll som skall kolla om användaren har skrivit korrekt tecken i uträkningen, kruxet är att den fungerar alldeles utmärkt tills jag har skrivit in fel värde och else satsen skall åtgärda detta, variabeln cOperator får värdet som jag skriver in men returvärden ifrån funktionen blir samma som skrevs in som fel ifrån början!
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?
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?