Hilfe!!! Hilfe!!! Fachabitur!!!
-
Mitleid schrieb:
...
Wenn er 'ne gute Arbeit schreiben will, sollte ihm der Mehraufwand dies doch Wert sein, oder?
-
also ich scheue mich nich vor einem hohen aufwand

allerdings kann ich nicht mehr ganz folgen
wie kann man den status abrufen??
und in wie fern kann mir das helfen ??
-
Gepufferte Streams (
coutundcinsind welche) verfügen wie der Name sagt über einen Puffer. Alles, was über diese Streams kommt, wird erstmal im Arbeitsspeicher gesichert, weshalb du Informationen über die Ein- und Ausgaben abfragen kannst. Mit der Funktionrebufkannst du dir die Adresse desstreambuf-Objektes holen, mit dem du den Stream überprüfen kannst.Hilft das?
-
Wenn nein, hilft google.
-
Glühbirne schrieb:
Wenn er 'ne gute Arbeit schreiben will, sollte ihm der Mehraufwand dies doch Wert sein, oder?
Da würde ich mich beim Dozenten erkundigen. In so einem Fall kann es leicht sein, dass die Kontrolle der Eingabe dann den überwiegenden Teil des Programms ausmacht.
Mr. XXX schrieb:
... wie kann man den status abrufen??
und in wie fern kann mir das helfen ??Wenn du im Stil von Marsmann etwas aus dem Eingabepuffer liest und in der Eingabe hat man sich nicht an die Reihenfolge int char int char int char int gehalten würde das auffallen und das Streamobjekt cin ginge in einen Fehlerzustand den du abfragen könntest.
http://www.cplusplus.com/reference/iostream/istream/
Ist das der Fall, kannst du den Eingabestream leeren. Und die Eingabe nochmal erfolgen lassen.
Ist nach diesen 7 cin's der Eingabestream nicht im Fehlerzustand, müsstest du immer noch prüfen, ob die eingelesenen int's im Bereich 0 bis 255 sind und, wenn du es ganz pedantisch machen willst kannst du auch noch prüfen, ob alle eingegebenen char's ein '.' sind.
Dann hast du einigermaßen sichergestellt, dass die Eingabe passt.
P.S. mit cin hast du bereits ein Objekt, dessen Eigenschaften du dann abfragen kannst.
Also z.B.:
if (cin.fail()) cout << "Falsche Eingabe Blödmann!" << endl;Waaaahhhnsinn! Welch Mitgefühl das Forum heute wieder zeigt.

-
Mitleid schrieb:
Wenn du im Stil von Marsmann etwas aus dem Eingabepuffer liest und in der Eingabe hat man sich nicht an die Reihenfolge int char int char int char int gehalten würde das auffallen
Aber - wie schon Glühbirne schrob - im schlechtesten Fall bleibt die Konsole 'hängen' und man muss mehrmals 'Enter' bzw. irgendein Zeichen und 'Enter' eingeben.
Deshalb ist es möglicherweise besser, die ganze Zeile in einen String einzulesen, diesen in einen Stringstream zu bugsieren und mit dem dann die >> Operation auszuführen.
@Mr. XXX:
Deine Chancen, hier konkretere Hilfen zu bekommen, würden stark ansteigen, wenn Du mal irgendwas halbwegs Sinnvolles an Code zeigen würdest. Wenn da so gar nichts kommt ... glaubst Du, wir schreiben hier Dein Programm?
-
vielen vielen dank euch
ich glaube ich habe alles verstanden und werde das auf jedenfall ausprobieren
ihr seit die besten
-
Seit Anbeginn der Zeit seid ihr die besten.
-
HighLigerBiMBam schrieb:
Seit Anbeginn der Zeit seid ihr die besten.
Wollte auch gerade verbessern

-
Belli schrieb:
..Deshalb ist es möglicherweise besser, die ganze Zeile in einen String einzulesen, diesen in einen Stringstream zu bugsieren und mit dem dann die >> Operation auszuführen.
Ja!
Man könnte einer "zu kurzen" Eingabe auch noch anders auf die Pelle rücken, aber deine Variante ist wohl einfacher und sinnvoller.