Problem in meinem Code



  • Warum geht das nicht 😡

    #include <stdio.h>
    
    main()
    {
      while(1)
      {
      char eingabe = 0;
      printf("Gib Zeichen ein: ");
      scanf("%d", &eingabe);
      if( eingabe == "q" )
      {
         printf("Beendet!");
         throw 0;
      }
      }
    }
    


  • Wieso habe ich das Gefühl einem Troll begegnet zu sein. Nun denn:

    #include <iostream>
    using namespace std;
    
    int main ()
    {
        char ch = 0;
        while(ch != 'q')
        {
            cout << "Zeichen eingeben: " << flush;
            cin >> ch;
        }
    
        return 0;
    }
    

    MfG SideWinder



  • Side, das flush muss nicht sein, da cin automatisch cout flusht 🙂



  • otze schrieb:

    Side, das flush muss nicht sein, da cin automatisch cout flusht 🙂

    aber nur wenn cin und cout zerstört werden.



  • Lol? schrieb:

    otze schrieb:

    Side, das flush muss nicht sein, da cin automatisch cout flusht 🙂

    aber nur wenn cin und cout zerstört werden.

    auch dann, aber cin und cout sind aneinander gebunden, sodass vor jeder eingabe erstmal die ausgabe kommt. tolle sache diese iostream lib, oder?



  • Nur noch die Frage ob ich das gut heißen soll 😃

    Aber die Info bringts, in Zukunft kein flush mehr 🙂

    MfG SideWinder



  • Anfänger C/C++ schrieb:

    Warum geht das nicht 😡

    Geht deshalb nicht weil du den Wert 0 zu "eingabe" zugewiesen hast und dann in der "if" Zeile geschrieben (eingabe = "q"). Damit verwirrst du den Kompiler. Also gehört da eine 0 hin also: if (eingabe == 0). Und warum du throw 0; geschrieben hast, weiss ich nicht. Tausche das lieber gegen return 0; um, dann funktioniert das Programm ordnungsgemäß. Welche Bücher liest du?


Anmelden zum Antworten