Video: Haben Girma: How did a deafblind woman conquer Harvard Law? | The Stream 2024
behandelt werden soll. Viele beginnende C ++ - Programme lesen aus dem cin-Eingabeobjekt und werden über das cout-Ausgabeobjekt ausgegeben. Vielleicht haben Sie nicht viel darüber nachgedacht, aber diese Eingabe / Ausgabe-Technik ist eine Untermenge dessen, was als Strom-I / O bekannt ist.
Stream I / O ist ein zu großes Thema, das vollständig in einer Reihe von einfachen Artikeln behandelt werden kann - ganze Bücher sind diesem einen Thema gewidmet. Glücklicherweise gibt es nicht allzu viel, was Sie über Stream-I / O wissen müssen, um die große Mehrheit der Programme zu schreiben.
Stream I / O basiert auf überladenen Versionen von operator >> () und operator << () . Die Deklaration dieser überladenen Operatoren befindet sich in der Datei iostream. Der Code für diese Funktionen ist in der Standardbibliothek enthalten, mit der Ihr C ++ - Programm verknüpft ist.
Der folgende Code zeigt nur einige der Prototypen, die in iostream erscheinen:
// Für die Eingabe haben wir: istream & operator >> (istream & source, char * pDest); istream & operator >> (istream & source, string & sDest); istream & operator >> (istream & quelle, int & dest); istream & operator >> (istream & quelle, doppelt & dest); // … und so weiter … // für die Ausgabe haben wir: ostream & operator << (ostream & dest, char * pSource); ostream & operator << (ostream & dest, string & sDest); ostream & operator << (ostream & dest, int Quelle); ostream & operator << (ostream & dest, doppelte Quelle); // … und so geht es …
Bei Überlastung zur Ausführung von I / O wird operator >> () als extractor und operator <() als inserter bezeichnet. Der Klassen-Istream ist die Basisklasse für die Eingabe von einer Datei oder einem Gerät wie der Tastatur. C ++ öffnet das istream-Objekt cin, wenn das Programm startet. In ähnlicher Weise ist Ostream die Grundlage für die Ausgabe.
Die obigen Prototypen sind für Einfüger und Extraktoren für Zeiger auf Null terminierte Zeichenfolgen (wie "Mein Name"), für String-Objekte, für Ints und für Doubles.