Problem mit return befehl



  • Ich habe folgendes problem... ich habe ein funktion geschrieben, die mit hilfe eines if befehls eine andere prozdeur starte, wenn die Variable back1 den "inhalt" 1 hat. Doch leider tritt immer die else funktion in Kraft, obwohl in back 1, 1 steht... kann mir einder sagen, was ich falsch mache??? Hier der quellcode...

    So verarbeite ich die variabel back 1

    case'2':
                  clrscr();
                  back1 = hilfe();
                  if (back1 == 1)
                   {
                   clrscr();
                   rennen(); 
                  break;
                  }
                  else
                  {
                  clrscr();
                  printf("%c",back1);
                  Sleep(1000);
                  }
                  break;
    

    und so schreibe ich die zahl in die Variabel und gebe sie zurück

    back = getch();
     return back;
    


  • Du verwechselst 1 mit '1'.



  • thx jetzt klappt es, aber wo ist der unterschied???



  • 1 ist die Zahl [int] Eins

    '1' ist ein Zeichen [char] und hat den ASCII-Code 49 (glaube ich ), womit du
    vorher verglichen hast. Da 49 immer ungleich 1 ist, trat immer der else-Block in Kraft.


Anmelden zum Antworten