Grad-Zeichen in der Konsole anzeigen



  • Hallöchen Leutz...

    Ich habe da eine Frage zu dem Programm. Ich lasse nach der Auswahl meinetwegen °C in °F umrechnen, nur das " ° " wird in der Konsole nicht angezeigt. Woran liegt das? Kann mir da einer bitte behilflich sein? Im Internet habe ich leider nicht gefunden, wie ich den ASCII-Code 248 (°-Zeichen") in solch einem Programm einbinden kann. Ich packe mal die komplette *.cpp als Quelltext hinein.

    #include <stdio.h>
    #include <ctype.h>
    
    void main() {
       float temperatur;
       char zeichen;
    
       printf("\nTemperaturumrechnung\n");
       printf("\n1 Fahrenheit\n2 Kelvin\n3 Rankine\n0 Ende");
       printf("\n\nAuswahl: ");
       zeichen = getchar();
    
       switch (zeichen) {
          case '0': break;
          case '1': case '2': case '3':
             printf("\nBitte Grad Celsius eingeben: ");
             scanf("%f", &temperatur);
             if (temperatur >= -273.15)
                switch (zeichen) {
                   case '1':
                      printf("\n%.2f °C sind %.2f °F.\n\n", temperatur, 9.0 / 5.0 *temperatur + 32.0);
                      break;
                   case '2':
                      printf("\n%.2f °C sind %.2f K.\n\n", temperatur, temperatur + 273.15);
                      break;
                   case '3':
                      printf("\n%.2f °C sind %.2f Rank.\n\n", temperatur, 9.0 / 5.0 * (temperatur + 273.15));
                      break;                 
             } else{
                printf("\nDiese Temperatur gibt es nicht!\n");
             }
             break;
          default:
             printf("\nUngueltige Option");
       }
    }
    


  • du musst 248 als char interpretieren lassen!

    printf("%.2lf %cK\n", 273.15, 248);
    


  • oder du nimmst die Escape-Sequenz: printf("%.2f\xF5 C",C_grad);



  • Hallöchen...

    Ich habe jetzt das ganze mit der Idee von Curry-King so umgeschrieben...

    printf("\n%.2f %cC sind %.2f %cF.\n\n", temperatur, 248, 9.0 / 5.0 * temperatur + 32.0, 248);
    

    Danke für den Tipp! 🙂

    baylies



  • was hast du für einen compiler das der net meckert 😕
    das sollte doch so heißen:

    ....
    int main(void)
    {
    ....
    return 0;
    }
    


  • ähm... ich nutze vs .net 2002 ... 😉



  • hier hast du alle Zeichen...

    for(int i = 0; i < 256; i ++)
       printf("%d\t\t = %c\n", i, i);
    

Anmelden zum Antworten