005
28.08.2003, 13:51 Uhr
virtual
Sexiest Bit alive (Operator)
|
Mir ist nicht klar, was ich kurz erklären soll, deshalb erklre ich jetzt mal das vermutlich falsche lang:
Alles, was in C++ irgendwie mit Ein- und Ausgabe zu tun hat, wird mit Hilfe von sog. Streams erledigt. Ein Stream kann eine Datei sein (für ein und ausgeben), der Bildschirm (hier natürlich nur Ausgabe), die Tastatur (nur Eingabe), Datenbanken usw. Streams sind also erstmal was sehr allgemeingehaltenes.
Damit nun Streams zwar für alles mögliche eingsetzt werden können, aber gleichzeitig möglichst viel gemeinsam haben (eines der Ziele von Objektorientierung), kann man das Verhalten von Streams beeinfalussen, indem man bestimmte Flags setzt oder löscht. In deinem Fall willst Du, daß der Stream leerzeichen nicht einfach ignoriert, sondern brav an Dich ausliefert. Daher muß das Flag (das nennt sich mit Vor+Nachnamen std::ios::skipws) gelöscht werden (die dafür erforderliche Methode heißt unsetf).
Ich habe jetzt eben nur diese Variant vorgestellt, es gibt aber darüberhinaus auch noch sogenannte Manipulatoren Ein Manipulator manipuliert die Ein- oder Ausgabe von Streams. Damit kann man beispielsweise den Stream dazu nötigen, eine Zahl in Hexadezimalen Format auszugeben (default ist dezimal), man kann einen Eingabestream auch dahingehend manipulieren, daß er Leerzeichen nicht ignoriert:
C++: |
Stream>>std::noskipws;
|
Dazu muß man aber erstens noch ein
Einbauen und weiterhin ist dieser manipulator (obwohl Standard) nicht von allen compilern gern gesehen.
Was wolltest Du eigentlich wissen? -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) Dieser Post wurde am 28.08.2003 um 13:51 Uhr von virtual editiert. |