Start > Informatik > C - Kurs > Ein-/Ausgabe

Ein-/Ausgabe

Sinn und Zweck

Mit Hilfe von Eingabe- und Ausgabeoperationen wird eine Interaktion zwischen Bediener (User) und dem Programm hergestellt. Der User soll Daten, d.h. Zahlen, Namen, etc., in das Programm eingeben können. Ebenfalls soll das Ergebnis des Programms dem User dargestellt werden können.
Stell Dir eine Maschine vor, in die man zwar was eingeben kann, die aber nie ein Ergebnis anzeigt ....

Computer's Sicht der Dinge

Bei einem Computer unterscheidet man zwischen Eingaben (input) und Ausgaben (output).
Daher gibt es auch zwei unterschiedliche Befehle, die jeweils für Input und Output zuständig sind.

Eingabe von Daten:
Eingaben werden durch den Benutzer gemacht. Anschließend muss der Computer die Eingabe verarbeiten (englisch "scan") Daher kommt der Befehl:

scanf      //<-- da steckt das Wort scan drin!

Ausgabe von Daten:
Ausgaben werden auf dem Bildschirm angezeigt oder ausgedruckt. Drucken heißt im Englischen "print", daher der Befehl:

printf   //<-- da steckt das Wort print drin!

unvollständiges Code-Beispiel

Der folgende Code macht folgendes:

  1. Zahl vom Benutzer eingeben lassen (scanf)
  2. Zahl in einer Variable iEingabeTest abspeichern (scanf)
  3. Den Wert der Variable iEingabeTest ausgeben. (printf)

Code-Snippet:

    scanf("%d", &iEingabeVariable);
    printf("%d", iEingabeVariable);

Mit obigen Programmausschnitt (snippet) kann der Benutzer eine Zahl eingeben und anschließend wird dieser eingebene Wert wieder auf dem Bildschirm angezeigt.
Beachte, dass man bei Computer immer Variablen braucht, die einen Wert speichern! Ohne Speicherung vergißt der Rechner alles was man eingeben hat.
Hinweis: Natürlich muss man vorher die Variable deklarieren!

Detaillierte Erklärung zu scanf und printf

Wie man erkennt macht der scanf - Befehl zwei Sachen auf einmal.

  1. fordert den Benutzer zu einer Eingabe auf
    und
  2. speichert die Eingabe in einer Variable.

Der printf - Befehl enthält wieder dieselbe Variable wie in der scanf - Anweisung. Dabei sorgt der Befehl nur dafür, dass der WERT der Variable (siehe auch: Variablen) ausgegeben wird.

Bedeutung der Modifier

Bei den beiden Befehlen gibt es sogenannte Modifier, diese geben an, um was für eine Art der eingegebenen Daten es sich handelt.
Der Mensch kann ja Buchstaben und Zahlen unterscheiden, der PC kann das aber nicht. Daher muss man ihm vorher sagen, was jetzt kommt.
Das ist wie bei der Sendung mit der Maus "das war usbekisch", da bekommt man auch gesagt, welche Sprache das gerade war.
Es gibt verschiedene Modifier, z.B.:

  • %d - für ganze Zahlen
  • %f - für Kommazahlen
  • %c - für Buchstaben

Warum das noch nicht alles ist, oder einfach fflush(stdin)

Bei Computern, speziell bei Tastaturen, gibt es einen sogenannten Puffer (Englisch "buffer"). In diesem Puffer bleiben die Daten stehen, bis sie von einem Programm abgeholt werden.
Leider muss der Programmierer selber dafür sorgen, dass dieser Puffer geleert wird. Klingt kompliziert, oder?
Stellt Euch einfach mal einen Geldtresor vor, in den jemand von aussen Geld einwerfen kann. Wenn der Geldtresor nicht geleert wird, dann kann man irgendwann kein Geld mehr einwerfen. Also muss er geleert werden.
Wer ist dafür verantwortlich? Der Hersteller, der Eigentümer oder der Kunde der Geld einwirft?

Klaro: Der Eigentümer!

Beim Programmieren seid Ihr der Eigentümer, der Kunde ist die Eingabe des Benutzer und der Geldtresor ist der Computer.
Mit anderen Worten Ihr müsst dem Computer mitteilen, mach den Puffer leer.
Also führt man nach JEDER Eingabe den Befehl

    fflush(stdin);

aus. Damit haben wir ein komplettes Code-Beispiel:

komplettes Code-Beispiel

    scanf("%d", &iEingabeVariable);
    fflush(stdin);
    printf("%d", iEingabeVariable);

Mit obigen Wissen sollte man dieses Beispiel jetzt vollständig verstanden sein.

Infoblätter und Arbeitsblätter

Input und Output Befehle
Info: Dieses Arbeitsblatt erklärt die wichtigsten Modifier und die scanf und printf Anweisung. Ebenfalls enthält es Übungen zum Umsetzen von Struktogrammen mit diesen Befehlen.

Ticker
Last update:
June 29. 2017 19:48:11