Beispiel 1: zeichenkette

05.12.2016 07:31 Uhr
#include <iostream>

using namespace std;

int main()
{
int zahl;
char zeichen;
char zeichenkette[100];

cout << "Geben Sie eine Zahl ein!" << endl;
cin >> zahl;
cout << "Erhalten: " << zahl << endl;

cout << "Geben Sie ein Zeichen ein!" << endl;
cin >> zeichen;
cout << "Erhalten: " << zeichen << endl;

cout << "Geben Sie eine Zeichenkette ein!" << endl;
cin >> zeichenkette;
cout << "Erhalten: " << zeichenkette << endl;
}

Beispiel 1: Erläuterungen I

#include <iostream>

using namespace std;

int main()
{
int zahl;
char zeichen;
char zeichenkette[100];
Einige Präzisierungen zum Verhalten von cin.
"cin" ist ein Objekt: Mittels eines Mechanismus, den wir später kennenlernen
werden, verhält es sich unterschiedlich, je nachdem, welcher Datentyp hinter
dem ">>" Operator angegeen wird.

cout << "Geben Sie eine Zahl ein!" << endl;
cin >> zahl;
1) Wird cin verwendet, um eine Integer-Variable zu lesen, so
lautet die präzise Definition:
- Ignoriere etwaige Leerstellen und anderen "White Space".
- Lies die längstmögliche Serie von durch keine anderen Zeichen unterbrochenen
  Ziffern.
- Ignoriere alle Leerstellen und anderen "White Space".
cout << "Erhalten: " << zahl << endl;

cout << "Geben Sie ein Zeichen ein!" << endl;
cin >> zeichen;

2) Wird cin verwendet, um ein einzelnes Zeichen (char) zu
lesen, so lautet die präzise Definition:
- Ignoriere etwaige Leerstellen und anderen "White Space".
- Lies genau ein Zeichen unterbrochenen.
- Ignoriere alle Leerstellen und anderen "White Space".
cout << "Erhalten: " << zeichen << endl;

cout << "Geben Sie eine Zeichenkette ein!" << endl;
cin >> zeichenkette;
2) Wird cin verwendet, um eine Zeichenkette (char *) zu
lesen, so lautet die präzise Definition:
- Ignoriere etwaige Leerstellen und anderen "White Space".
- Lies die längstmögliche Serie von durch keinen "White Space" unterbrochenen
  Zeichen.
- Ignoriere alle Leerstellen und anderen "White Space".

cout << "Erhalten: " << zeichenkette << endl;
}

Diese Definitionen können häufig zu unangenehmen Nebeneffekten
führen. Testen Sie dieses Programm durch Eingeben von EINER Zeile, in der sie
zwei durch Leerstellen getrennte Zahlen eingeben.
Lautet diese zeile "123 456", so passiert auf Grunde der obigen definition folgendes:
  1. Das Programm fordert zur Eingabe einer Zahl auf und wartet, bis Sie die ENTER Taste gedrückt haben. Danach wird „123“ als Zahl ausgegeben.
  2. Die Anfrage nach einem einzelnen Zeichen erscheint und ohne jede Wartezeit wird „4“ als Einzelzeichen ausgegeben.
  3. Abermals ohne jede Wartezeit erscheint die Frage nach einer Zeichenkette und „56“ wird als solche dargestellt.

Hinter ‚cin‘ verbirgt sich also ein Mechanismus, der die Eigenschaften eines Eingabemediums – der Tastatur – berücksichtigt, die „zeilenweise“ eingegebenen Daten, d.h., alles was zwischen zwei ENTER Tasten liegt, zwischenspeichert und dann nach den Regeln des „>>“ Operators an das aufrufende Progrmammm weitergibt.

Eine derartige Wiedergabe eines Eingabegerätes durch ein Objekt, das die ankommenden Daten verwaltet und nach Anforderung bereitstellt, nennen wir Eingabestrom; analog dazu beschreibt cout als Ausgabestrom ein Objekt, das auszugebende Zeichen ein wenig bearbeitet und an ein bestimmtes Ausgabegerät - bisher das DOS Fenster - weitergibt.


Anhang: example1.cpp

Schlagwörter: