endlos schleife entsteht und ich kann sie nicht lösen



  • while (!(std::cin >> value)) { std::cin.sync(); std::cin.clear(); std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }
    

    Ganz ehrlich, so nützlich diese Zeile auch sein mag, sie ist schrecklich.



  • Badestrand schrieb:

    ...
    Ganz ehrlich, so nützlich diese Zeile auch sein mag, sie ist schrecklich.

    😕
    Klär mich auf... Warum ist die Zeile so schrecklich...



  • zeigerzeiger schrieb:

    😕
    Klär mich auf... Warum ist die Zeile so schrecklich...

    hehe, ok 🙂 Ich muss mich aber korrigieren, sie ist nicht unbedingt schrecklich, ich persönlich finde sie aber schrecklich. Und zwar einfach, weil ich sie fürchterlich zu merken finde, dafür, dass sie eine so simple Funktion hat.
    Und so einfach verständlich ist sie (zumindest für Anfänger) überhaupt nicht, erst sync, dann clear, dann ignore, der erste Parameter davon ist ein Funktionsaufruf von max einer statischen Template-Klasse mit dem Template-Parameter stream_size.

    Also ehrlich, und das nur dafür, dass die Funktion auf eine gültige Eingabe wartet...



  • Ahh... OK... 🙂
    Und ich dachte schon da ist mal wieder irgendwas nicht so wie es sein sollte... 😃



  • Badestrand schrieb:

    while (!(std::cin >> value)) { std::cin.sync(); std::cin.clear(); std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }
    

    Ganz ehrlich, so nützlich diese Zeile auch sein mag, sie ist schrecklich.

    sie ist ja auch schrecklich, aber mit anderer formatierung geht's vielleicht...

    using namespace std;
    ...
    while (!(cin >> value)) 
    { 
       cin.sync(); 
       cin.clear(); 
       cin.ignore (numeric_limits<streamsize>::max(), '\n'); 
    }
    ...
    

    naja, immer noch ziemlich schlimm, wenn man bedenkt was der code machen soll 🙄



  • Eine (D)Evil formatierung halt.



  • bleachblondhair schrieb:

    Eine (D)Evil formatierung halt.

    ach der, ja, bei dem muss ich auch immer an Jesters signatur denken 😉



  • Dieser Thread wurde von Moderator/in Tim aus dem Forum ANSI C in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • @undertakter: Ahhja. Und welche Zeile der Signatur meinst du? Zufällig diese:
    [quote=Jester]Die dümmsten Programmierer schreiben die dicksten Programme.[/qoute]

    Tjo ist ja interessant woran ihr immer so alles denkt. Scheint euch ja nicht so zu liegen, das Denken.



  • super! danke schön!

    es hat schon seine logik, wenn man es weiß, aber aufwendig finde ich es allemal.

    danke für eure hilfe!!!

    🙂



  • (D)Evil schrieb:

    Ahhja. Und welche Zeile der Signatur meint ihr? Zufällig diese:

    Jester schrieb:

    Die dümmsten Programmierer schreiben die dicksten Programme.

    Tjo ist ja interessant woran ihr immer so alles denkt. Scheint euch ja nicht so zu liegen, das Denken.

    Ich weiß nicht, wen du mit "ihr" meinst, aber ich musste nicht dran denken. Undertaker wahrscheinlich schon.

    Mich würde mal interessieren, ob du in einem Team programmierst und andere auch deinen Code lesen oder ändern müssen. Wenn ja, haben die sich noch nie über deine Formatierung beschwert?



  • [quote="(D)Evil"]Ahhja. Und welche Zeile der Signatur meint ihr? Zufällig diese:

    Jester schrieb:

    Die dümmsten Programmierer schreiben die dicksten Programme.[/qoute]
    Tjo ist ja interessant woran ihr immer so alles denkt. Scheint euch ja nicht so zu liegen, das Denken.

    oh shit 😮
    ich dachte nicht, dass der thread ins C++ forum geschoben wird und du ihn jemals zu gesicht bekommst.
    *schäm*



  • Tjo das verbessert es nicht 😉 Tss aber da kann ich mit leben wenn ich von dir so einen Kommentar bekomme 😉

    @bleachblondhair:
    Ehm doch ich arbeite rel. oft im Team. Allerdings ist meine Formatierung dann oft ein wenig übersichtlicher. Das ich das in eine Zeile gepackt habe, liegt daran, dass der Rest dahinter sozusagen einfach überlesen werden soll und nur wichtig an der Aussage ist, dass der Wert eingelesen wird 😉


Anmelden zum Antworten