vektor<grundwissen>



  • du ließt ja auch doppelt ein



  • das unsigned int i{0U}; ist nicht das Problem man kann auch i=0,schreiben es ist nur neuer c++11 Standard



  • Jepp , danke hab's korrigiert --- einmal im Kopf der while genügt dann geht's...



  • Ist mir schon klar, dass es nicht das Problem ist. Ich finds nur unglaublich hässlich und hoffe echt, dass nicht viele sich diese Krankheit angewöhnen werden.

    Zu deinem konkreten Problem hab ich nichts geschrieben, weil mir da ein bisschen komisch vorkommt und es hier einige gibt, die sich damit sicher besser auskennen. Dass du den Wert doppelt einliest ist offensichtlich. Aber was soll z.B. der double Vergleich auf 'q'?



  • Schön finde Ich das auch nicht da muss Ich dir beipflichten mir ist ein einfaches
    for( i=0;... auch symphatischer...
    das 'q' im double dient einfach nur dazu die Eingabe zu unterbrechen... der Compiler kann das scheinbar richtig erkennen ....auch wenn feldregister vom Typ double ist .... was wäre denn besser?


  • Mod

    softpad schrieb:

    der Compiler kann das scheinbar richtig erkennen

    Der erkennt aber ganz was anderes als du denkst. Probier mal folgende Eingaben: "a" oder "113". Ist das Resultat gewünscht?

    was wäre denn besser?

    while(cin>>feldregister) {
    

    Deine '.'-Taste scheint kaputt zu sein, sie repetiert.



  • softpad schrieb:

    Schön finde Ich das auch nicht da muss Ich dir beipflichten mir ist ein einfaches
    for( i=0;... auch symphatischer...

    Was soll das dann? 😕



  • Ja Ich hab es schon gemerkt die Abbruchbedingung funktioniert zwar - warum auch immer, aber ich bekomme Probleme mit dem Ausgabestrom, wenn das Programm länger wird erzeugt das ganze Fehler an anderer Stelle - also wenn noch andere Algorithmen angehängt werden, Ich habe es entsprechend geändert... Danke für den Hinweis !



  • while(cin>>feldregister && feldregister!='q')
    

    liest ein double ein und überprüft, ob die Leseoperation erfolgreich war. Wenn das so ist, wird die rechte Seite des && Operators überprüft. Das ist syntaktisch richtig, aber semantisch falsch. Wenn du 'q' eingibst, schlägt schon die Leseoperation fehl, die zweite Seite wird also nie ausgewertet. Du kannst auch mit 'a', oder "foobar" usw. abbrechen. 'q' ist eben kein double.

    EDIT: habe nicht an 113 gedacht. Siehe unten.



  • @softpad: gib mal 113 bei deinen Zahlen ein - Ideone Code 😉


Anmelden zum Antworten