C++-Programmierung/ Einführung in C++/ Einfache Ein- und Ausgabe
Aus Wikibooks
Ein- und Ausgaberoutinen geben Ihnen die Möglichkeit, mit einem Programm zu interagieren. Dieses Kapitel beschäftigt sich mit der Eingabe über die Tastatur und der Ausgabe auf der Konsole in C++-typischer Form. Die C-Variante werden Sie später noch kennenlernen.
Um die C++ Ein- und Ausgabe nutzen zu können, müssen Sie die Bibliothek iostream einbinden. Das geschieht mit:
Danach müssen die Befehle daraus bekannt gegeben werden, da sie sich in einem speziellen Namensraum befinden. Was Namensräume sind und wofür man sie einsetzt, werden Sie später noch erfahren. Um nun die Ein- und Ausgabebefehle nutzen zu können, müssen sie dem Compiler sagen: Benutze den Namensraum std. Da der Compiler das aber so nicht versteht, können Sie folgende gleichbedeutende Zeile benutzen:
Der Namensraum „ std“ heißt so viel wie Standard. Wenn etwas in diesem Namensraum steht, dann gehört es zur C++-Standardbibliothek und die sollten Sie (in der Regel) wann immer möglich einsetzen. In den Programmen dieses Buches wird der Namensraum immer direkt angegeben. Das heisst, wenn beispielsweise ein Objekt benutzen werden soll das im Namensraum „ std“ liegt, wird ihm „ std::“ vorangestellt. Die beiden Doppelpunkte heißen Bereichsoperator.
[Bearbeiten] Einfache Ausgabe
Nun wollen wir aber endlich auch mal was Praktisches tun. Zugegebenermaßen nichts Weltbewegendes und im Grunde nicht einmal etwas wirklich Neues, denn Text haben wir ja schon im „Hello-World“-Programm ausgegeben.
Wie der Text bereits selbst sagte, er erscheint in der Kommandozeile und der zweite schließt sich sehr direkt an. Wenn sie innerhalb einer Zeichenkette einen Zeilenumbruch einfügen möchten, gibt es zwei Möglichkeiten. Sie können die Escape-Sequenz \n in die Zeichenkette einfügen oder den Manipulator endl benutzen. Was genau Escape-Sequenzen oder Manipulatoren sind ist Thema eines späteren Kapitels, aber folgendes Beispiels demonstriert schon mal die Verwendung für den Zeilenumbruch:
int main(){
std::cout << "Text in der Kommandozeile!\n"; // Escape-Sequenz \n
std::cout << "Dieser Text schließt sich an...\n"; // Das steht in einer eigenen Zeile
std::cout << std::endl; // Leerzeile mittels endl
std::cout << "Text in der Kommandozeile!" << std::endl; // Zeilenumbruch mit endl
std::cout << "Dieser Text schließt sich an..." << std::endl; // Das steht in einer eigenen Zeile
}
Dieser Text schließt sich an...
Text in der Kommandozeile!
Dieser Text schließt sich an...
Beide Methoden haben scheinbar den gleichen Effekt, wo der kleine Unterschied liegt, ist allerdings auch Thema eines späteren Kapitels und im Moment noch nicht relevant.
[Bearbeiten] Einfache Eingabe
Für die Eingabe muss ein wenig vorgegriffen werden, denn um etwas einzulesen, ist ja etwas nötig, worin das Eingelesene gespeichert werden kann. Dieser „Behälter“ nennt sich Variable. Eine Variable muss zunächst einmal angelegt werden, am besten lässt sich die Eingabe an einem Beispiel erklären:
Es wird, wie bereits erwähnt, erst eine Variable angelegt ( int Ganzzahl;), welcher dann ein Wert zugewiesen wird ( cin >> Ganzzahl;). Diese zweite Zeile bedeutet so viel wie: lies eine ganze Zahl von der Tastatur und speichere sie in der Variablen Ganzzahl.
cin ist sozusagen die Tastatur, Ganzzahl ist der Behälter und >> bedeutet so viel wie „nach“. Zusammen ergibt sich „Tastatur nach Behälter“, es wird also der „Inhalt“ der Tastatur in die Variable Ganzzahl verschoben. Dass eine Ganzzahl von der Tastatur gelesen wird, ist übrigens vom Datentyp der Variable abhängig, aber dazu später mehr.
Um den Inhalt der Variable wieder auszugeben, müssen Sie nichts weiter tun, als sie mit einem weiteren Schiebeoperator ( <<) hinter cout anzuhängen. Es ist ohne Weiteres möglich, mehrere solcher Schiebeoperatoren hintereinander zu schalten, solange Sie nur die letzte Ein- oder Ausgabe mit einem Semikolon ( ;) abschließen. Bei der Eingabe muss natürlich der >>-Operator statt dem <<-Operator benutzt werden. Die Reihenfolge der Ein- oder Ausgabe bei solchen Konstruktionen entspricht der eingegebenen Folge im Quelltext. Was zuerst hinter cout oder cin steht, wird also auch zuerst ausgeführt.
Im Anhang zu diesem Kapitel finden Sie:
- Fragen und die dazugehörigen Antworten.
Was ist hier verkehrt:
Der Operator muss >> sein.
Funktioniert folgendes Beispiel:
int main(){
int Ganzzahl;
std::cin >> Ganzzahl;
std::cout << "Sie haben "
<< Ganzzahl
<< " eingegeben.";
}
Das Beispiel funktioniert hervorragend. Zeilenumbrüche sind kein Problem, solange sie nicht innerhalb einer Zeichenkette stehen. Wenn Sie allerdings beabsichtigen, einen Zeilenumbruch bei der Ausgabe zu erzeugen, müssen Sie \n oder endl benutzen.
