Probleme mit do while und switch case
-
Hey,
ich habe switch case in einer do while schleife verpackt und es sollte nach jedem case ein mal erneut printf ausgeben, wird aber jedes mal doppelt ausgegeben und ich finde den fehler nicht
Vllt kann mir hier ja jemand helfen:D
Die cases sind immer gleich aufgebaut:do{ printf("\n\nBitte Einheit eingeben\n c (Celsius)\n f (Fahrenheit)\n k (Kelvin)\n"); scanf("%c",&Grad); switch(Grad){ case 'c': printf("Celsius eingeben: "); scanf("%f",& Ce); printf("Kelvin: %.2f\n", Ce+273.15); printf("Fahrenheit: %.2f", Ce*1.8+32); break;
-
}
}while(a<1);
}
-
@tobi27199 Dort wo du die Einheit einliest, muss ein Leerzeichen vor das %c
scanf(" %c",&Grad);
Das Leerzeichen gibt an, dass sog. Whitespace überlesen werden.
Das steht noch von der Entertaste, nach der Eingabe des Wertes, im Eingabestrom.Bei den anderen Formaten von scanf wird das automatisch überlesen.
BTW: Warum heißt die Variable nicht einheit_ein
Grad passt nicht
-
Weshalb denn überhaupt ein Leerzeichen nach jedem
\n
??! grrrr...
-
Danke für die Hilfe, funktioniert jetzt perfekt:)
Und ja die Leerzeichen sind überflüssig