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


  • Banned

    Weshalb denn ├╝berhaupt ein Leerzeichen nach jedem \n??! grrrr...



  • Danke f├╝r die Hilfe, funktioniert jetzt perfekt:)
    Und ja die Leerzeichen sind ├╝berfl├╝ssig ­čśâ


Log in to reply