Hilfe, aufeinmal spinnt die gets() funktion



  • strige schrieb:

    mmh komisch, mache bei der SGD den Kurs zum C/c++ Programmierer und und dort habe ich von anfang an mit

    void main(void)
    

    gelernt...

    kann ich mal den namen und die telefonnummer oder die emailadresse des verantworlichen bekommen? 🙂



  • *g* einfach mal www.sgd.de

    dort kannst dir sogar ne Probelektion.pdf durchlesen... muss jetzt aber gehen bis morgen!!



  • strige schrieb:

    Ist das so ok? Der witz ist, es funktioniert immer noch nicht, habe halt keine Compiler Warnungen mehr. 😞

    code sieht gut aus (wobei ich persönlich scanf und fgets nicht mischen würde). Daher weiß ich nicht, was du mit "funktioniert immer noch nicht" meinst. Was funktioniert denn nicht?



  • supertux schrieb:

    strige schrieb:

    mmh komisch, mache bei der SGD den Kurs zum C/c++ Programmierer und und dort habe ich von anfang an mit

    void main(void)
    

    gelernt...

    dann hat der Dozent dir Schei.sse erzählt. Kommt in Deutschland sehr oft vor.

    🤡 🤡 🤡 🤡 lol 🤡 🤡 🤡



  • Aber das Kursziel sagt doch schon alles, oder? "C/C++-Programmierer", das ist wie "Taxi/Omnibusfahrer"



  • LordJaxom schrieb:

    "C/C++-Programmierer", das ist wie "Taxi/Omnibusfahrer"

    wenn C das taxi ist, dann ist C++ eine droschke mit rennreifen, spoilern und verchromten pedalen.
    🙂



  • Das fgets() wird noch komplett übersehen.. das selbe problem wie oben bei gets()



  • fricky schrieb:

    LordJaxom schrieb:

    "C/C++-Programmierer", das ist wie "Taxi/Omnibusfahrer"

    wenn C das taxi ist, dann ist C++ eine droschke mit rennreifen, spoilern und verchromten pedalen.
    🙂

    Jo, und das Taxi hat keine Gurte und Spikes auf dem Lenkrad und an den Rücksitzen und ist aus Balsaholz gebaut, während die Droschke Airbags und Seitenaufprallschutz hat und aus Titanstahl gebaut ist.



  • mmh, was wollt ihr mir damit sagen?
    entweder man lernt c oder c++??? Leider hilft mir das bei meinem problem auch nicht weiter...

    geht mal davon aus das ich momentan noch alles in c schreibe 🙂



  • Um auch mal wieder was produktives loszulassen:

    Das Problem ist, dass Du mit scanf("%s,...") nur ein Wort einliest, keine ganze Zeile. Dadurch bleibt das Return im Tastaturpuffer. Das nun folgende fgets liest Zeichen von der Tastatur bis zum Return. Da Return das erste Zeichen im Tastaturpuffer ist, hat fgets sofort eine (für ihn) komplette Zeile gelesen ohne überhaupt auf Eingaben zu warten.

    Eine mögliche Lösung dafür wäre, fgets und scanf nicht zu vermischen. Eine andere wäre, nach jedem scanf den Tastaturpuffer zu leeren, etwa indem man mit fgets eine Zeile liest und diese dann verwirft.



  • ah ok, das kann natürlich sein, denn wenn ich gerade so zurückdenke, fällt mir auch auf, das ich

    scanf()
    

    nicht benutzt habe als ich mit

    gets()
    

    probiert habe, und dafür mit sscanf()....
    aber wenn ich das richtig verstehe müsste es doch dann mit fgets()funktionieren? oder was bedeutet

    memset()
    

    dachte das sei um den Puffer wieder auf Null zusetzen...
    Naja, aufjedenfall werde ich es mal kurz probieren... Danke Dir.



  • So habe nun scanf() mit fgets() ersetzt, funktioniert!!! Hurra!! Danke euch...

    Bis zum nächsten Problem..

    Vlg Strige



  • strige schrieb:

    oder was bedeutet

    memset()
    

    dachte das sei um den Puffer wieder auf Null zusetzen...
    Naja, aufjedenfall werde ich es mal kurz probieren

    äh... http://cppreference.com/stdstring/memset.html
    Puffer im Sinne von Array: ja. Puffer im Sinne des Tastaturpuffers: nein.



  • Ah ok, Danke habe eben auch bisschen probiert und gemerkt wenn ich den Tastaurpuffer nach scanf() lösche funktionierts auch, aufeinmal ist wieder alles so einfach komisch gell? 😃 ...

    Werde jetzt bisschen mit meinem Sohn spazieren gehen, melde mich später nochmal..

    Danke für die zahlreichen Antworten

    bis dann


Anmelden zum Antworten