Anfänger frage



  • #include <iostream> 
    using namespace std; 
    
    int main() { 
      int a,b; 
    
      cin >> a; 
      if(a <= 10 && a>0) { 
        b=a; 
      } 
      cout << b; 
    
      cin.clear (); 
      cin.ignore ( std::cin.rdbuf () -> in_avail () ); 
      cin.get (); 
    
      return 0; 
    }
    

    gruß elwida



  • hm, meint er nich eher das das programm abdankt wenn er keine Zahl eingibt sondern Text und dann Enter drückt ?



  • Warum ist dieser Kram

    cin.clear ();
    cin.ignore ( std::cin.rdbuf () -> in_avail () );
    cin.get ();
    

    eigentlich nicht als

    cin.wait();
    

    implementiert, um die Windows-Konsole für Anfänger gangbar zu gestalten? Auf dieses "Blitzen" fällt doch jeder am Anfang rein und denkt, sein Compiler o.ä. sei nicht in Ordnung. 🙄



  • also danke schomal aber:

    bei elwidas code: wenn ich das prog jetzt öffne erscheint die console, ok. aber wenn ich jetzt z.b. eine 3 oder auch egal was eingebe, und enter drücke schließst sie sich wieder....
    des ist der code:

    #include <iostream>
    using namespace std;
    
    int main() {
      int a,b;
    
      cin >> a;
      if(a <= 10 && a>0) {
        b=a;
      }
      cout << b;
    
      cin.clear ();
      cin.ignore ( std::cin.rdbuf () -> in_avail () );
      cin.get ();
    
      return 0;
    }
    


  • was erwartest du du denn noch ?? 😕
    ich meine machst ne eingabe und dann gibts ggf ne ausgabe.. dann sollte dich doch auch dass fenster schleisen schliesslcih ist der code zuende???
    mhh
    solltest auch b nur weiterverwenden wenn du b was zugewiesen hast



  • firestorm. schrieb:

    also danke schomal aber:

    bei elwidas code: wenn ich das prog jetzt öffne erscheint die console, ok. aber wenn ich jetzt z.b. eine 3 oder auch egal was eingebe, und enter drücke schließst sie sich wieder....
    des ist der code:

    #include <iostream>
    using namespace std;
    
    int main() {
      int a,b;
    
      cin >> a;
      if(a <= 10 && a>0) {
        b=a;
      }
      cout << b;
     
      cin.clear ();
      cin.ignore ( std::cin.rdbuf () -> in_avail () );
      cin.get ();
     
      return 0;
    }
    

    Bei mir klappt das auch nicht. Versuche einmal das:

    cin.sync();
    cin.get();
    

    truebool schrieb:

    was erwartest du du denn noch ?? 😕
    ich meine machst ne eingabe und dann gibts ggf ne ausgabe.. dann sollte dich doch auch dass fenster schleisen schliesslcih ist der code zuende???
    mhh

    Es müsste aber noch eine Eingabe erfolgen.

    mfg



  • danke, so funkt es.



  • mhh naja bei mir sind es auch 2 eingaben
    wenn ich
    cin.clear ();
    cin.ignore ( std::cin.rdbuf () -> in_avail () );
    cin.get ();

    beutze .. deshalb .. ich dachte nach dem 2ten enter erwartet er noch was..
    sörrüü ... lag bestimmt am compiler dass es auch mit dem source oben ging .. 😃



  • falls du windows hast mach

    system("PAUSE") !
    


  • aber warum denn 😮

    hier steht warum er nicht system("Pause"); benutzen sollte...
    ausserdem läuft es doch nun... ohne system(); zu benutzen



  • das getchar() sollte eigentlich ein schließen verhinern...
    ich würd dann noch ein endl einbauen.

    lg
    l00P



  • Erhard Henkes schrieb:

    Warum ist [...]
    eigentlich nicht als

    cin.wait();
    

    implementiert, um die Windows-Konsole für Anfänger gangbar zu gestalten?

    Weil Windows und Anfänger auf der Prioritätenliste der C++-Arbeitsgruppe ganz unten stehen, weil man Konsolenprogramme von der Konsole starten sollte, und weil es der IDE zuzuschreiben ist, wenn sie das Konsolenfenster am Ende nicht offenhält.


Anmelden zum Antworten