Brauche dringend hilfe?!



  • mit std flush (musst mal googlen) musst den buffer von scanf leer machen... Dann fragt der wieder ab.

    Noch als Tipp: Als anfänger ist es besonders wichtig gute Variablennamen zu wählen und richtig einzurücken...



  • Danke für die ganzen tipps

    ich werde auf jedenfall versuchen in meinen nächsten Projekten eure tipps
    zu beherzigen, alles in funktionen aufzuteilen ist bestimmt ganz sinnvoll,
    ich werde versuchen mir das schnellst möglich anzueignen.

    Ehrlich gesagt hab ich erst vor zwei wochen angefangen mit dem Selbststudium
    und da ich nebenbei meinen Techniker mache, habe ich nicht so viel zeit
    abends. Ich wollte das Prog halt zur übung nehmen, da ich der Meinung bin
    das ich nur vom lesen den Umgang mit ner Programmiersprache nicht in meinen
    Kopf bekomm.

    Aber cool das ihr mich so nett aufgenommen habt und reichlich tipps für mich
    in der hinterhand habt.

    greetz DeeJay|E



  • 🙂 Guck dir mal an wie lang ich dabei bin. Und guck dir mal an was ich hier damals für sachen geschrieben habe.

    Man wächst auf jedenfall an aufgaben. Alles was ich dir jetzt beantworten kann habe ich hier gelernt. Hab viele sachen einfach mal ausprobiert die ich hier gelesen habe.
    Hier mitzulesen und versuchen das was man liest zu begreifen und es mal auszuprobieren bringt dir extrem viel mehr als das beste Buch.
    Programmieren lernen ist auf jedenfall etwas was nur in der Praxis geht...

    hab für dich auch mal google angewendet...
    such mal nach flush(stdin)... am besten auch mal über die Forensuche. Das scheint der richtige ansatz zu sein. Genau das problem hatte ich auch mal. Finde nur leider den snippet nimmer wieder....



  • Jetzt gehts endlich

    danke nochmal für die hilfe,

    hab jetzt mit dem Befehl 'fflush(stdin);' vor 'scanf' den Buffer geleert
    und jetzt funzt das Prog so wie ich es will.

    (Notiz für mich, das Prog übersichtlicher machen 🙂 )

    greetz DeeJay|E



  • ^^ mist, ich habs auch grade gefunden...
    fflush geht auf stdin und auch auf stdout...

    Damals habe ich beides gemacht...
    Musste da für ne Navigation nen int einlesen...



  • fflush(stdin) kann undefiniertes Verhalten erzeugen, das nur mal am Rande...



  • brauchst dich nicht ärgern Sqwan (wegen ^^mist)

    das war bestimmt nicht das letzte mal das ich hilfe brauch 😉

    @GPC
    was meinst du damit undefiniertes Verhalten? das Prog macht auf jedenfall
    das was ich wollte.

    DeeJay|E



  • deejayextasy schrieb:

    @GPC
    was meinst du damit undefiniertes Verhalten? das Prog macht auf jedenfall
    das was ich wollte.

    Damit meine ich, dass es sich auch ganz anders verhalten kann... z.B. einfach abstürzen oder müll in den Stream schreiben, etc. Das Verhalten ist eben undefiniert. Das es jetzt bei dir funktioniert ist zwar schön, aber keineswegs garantiert.

    Eine sichere Variante wäre:

    void safe_flush() {
        int c;
        while ((c = getchar()) != '\n' && c != EOF);
    }
    


  • GPC schrieb:

    fflush(stdin) kann undefiniertes Verhalten erzeugen, das nur mal am Rande...

    fflush(stdin) kann nicht undefiniertes Verhalten erzeugen sondern erzeugt undefiniertes Verhalten.



  • Hm... hab ich auch schon gelesen online. Hab aber noch nie fehlverhalten gehabt.
    Da GPC aber eine gute version gezeigt hat, benutz einfach diese. Die stört dich ja nicht. Und wenn du nicht immer die Funktino drin haben willst, lager sie in einen Header aus... ^^ Wenn du mal so weit bist...



  • Sqwan schrieb:

    }}}}} 
    
      while(abfrage == 'j');
    

    Es schrieb doch grade jemand: Das while gehöhrt direkt an die klammer nicht 2 zeilen drunter

    In C ist es egal, ob du ein Leerzeichen oder 10 leere Zeilen schreibst.


Anmelden zum Antworten