° -Zeichen Einlesen



  • Hi,

    ich hab ein Problem beim Einlesen des ° - Zeichen, irgendwie wird das bei strncmp nicht erkannt.
    Ich muss ein Programm schreiben, welches beim Einlesen direkt erkennt ob es von Fahrenheit in Clesius,
    oder umgekehrt gerechnet werden soll.
    Hat vielleicht jemand ne Ideee?

     #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
     float zEein=0;
     int auswahl;
     char gEin[3] = { 0 };
    
     printf("\n\tT e m p e r a t u r b e r e c h n u n g\n");
     printf("Bitte geben Sie den Zahlenwert und die Groessenordnung ein> ");
    		scanf("%f", &zEein);
    		fgets(gEin, 3, stdin);
    
    
    		if ((strncmp(gEin, "F", 1)) == 0) {
    			auswahl=1;
    		} else if ((strncmp(gEin, "°F", 2)) == 0) {
    			auswahl=1;
    		} else if (strncmp(gEin, "C", 1) == 0) {
    			auswahl=2;
    		} else if (strncmp(gEin, "°C", 2) == 0) {
    		    auswahl=2;
    
    		} else {
    			printf("\nKeine plausible Einheit eingegeben!\n");
    			return 0;
    		}
    
    		switch(auswahl){
    
    		    case 1:
    		    printf("\n%.2f °F sind %.2nf °C",zEein,(zEein-32)/1.8000);
    		    break;
    
    		    case 2:
    		    printf("\n%.2f °C sind %.2f °F",zEein,1.800*zEein+32);
    		    break;
    		}
    }
    

    Freundliche Grüße


  • Mod

    Probier mal aus, was strlen("°F") ist. Vermutlich nicht das, was du erwartest.


Anmelden zum Antworten