Ein- und Ausgabe (I/O)

Ähnliche Dokumente
Grundlagen der Informatik 2. Typen

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Variablen, Konstanten und Datentypen

Kontrollstrukturen -- Schleifen und Wiederholungen

Ein und Ausgabe Grundlagen C++ E/A System operiert über streams streams sind logische Geräte, die Informationen produzieren bzw. verbrauchen streams

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue

Programmieren in C/C++ und MATLAB

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

Operatoren und Ausdrücke

Herzlich willkommen!

Grundlagen der Programmentwicklung

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

C/C++ - Programmierung. Formatierte Ausgabe mit cout Seite 1 von 6

ios fstream ifstream

Programmieren in C++ Stream I/O

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik

Einführung in I/O und File-Handling in C ++

Anwendung höherer Programmiersprachen. Formatierte Ausgabe mit cout. Angewandte Informatik I C / C++ Teil B: Formatierte Ein- und Ausgabe

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik

Grundlegende Anweisungen in C++

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Ein- und Ausgabe in Dateien (File I/O)

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).

Klausur: Informatik, am 11. Juli 2013 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Klausur: Informatik, am 13. August 2015 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Zeiger und dynamischer Speicher

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Informatik I - Übung 2 Programmieren in Eclipse

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

9 Streams. 9.1 Einführung und Architektur

Informatik für Elektrotechnik und Informationstechnik

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Pseudo-Programmiersprache

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur Programmieren 1 SS 2017

Ausnahmebehandlung I

Kontrollstrukturen -- Entscheidungen, Abfragen und Fallunterscheidungen

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

1 UNIX und die Kommandozeile. 2 C++ Tipps. 1.1 wichtige Befehle und Programme. 1.2 Umleiten der Standardein- und Ausgabe. 2.

Inhalte. Einführung. Algorithmus, Programmiersprache, Compiler und Linker. Kontrollstrukturen. Präprozessoranweisungen. Libraries

Projekt 3 Variablen und Operatoren

Programmieren in C/C++ und MATLAB

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Kapitel 13. Definition von Klassen. OOP Thomas Klinker 1

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe

Programmieren in C/C++ und MATLAB

4 Schleifen und Dateien

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: E Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array)

Grundlagen der Informatik 6. Arrays I

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme

Zusammengesetzte Datentypen -- Arrays und Strukturen

Klausur in Programmieren

Klausur: Informatik, am 11. Juli 2013 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Ein- und Ausgabe mit Dateien

5. Elementare Befehle und Struktogramme

Vorlesungsprüfung Programmiersprache 1

Angewandte Mathematik und Programmierung

Grundlagen der Informatik 4. Kontrollstrukturen I

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling

Z:\Informatik 3\Labor_GINF3\Labor_01-Sonstiges.txt

Grundlagen der Informatik

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Lösung Übungsblatt 5

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

Klausur in Programmieren

Die Klasse string Verfasser: Christian Bartl

Kap 9. Bitoperationen und -strukturen

Ein kleiner Blick auf die generische Programmierung

Programmieren in C/C++ und MATLAB

Programmieren in C++

Programmieren für Physiker: C++ SS 2016

C++ Programmieren mit einfachen Beispielen DIRK LOUIS

C++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19

C-C++-Kurs Februar/März (Wed Mar 9 07:53: ), p. 1. Einführung in die Programmiersprachen C und C++

Einführung in die Programmierung Wintersemester 2008/09

Aufbau von Programmen/Dateien

Grundlagen der Informatik 5. Kontrollstrukturen II

9. Vektoren. (auch Felder/array)

Transkript:

Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Überblick 1 2 / 14

Motivation Computer arbeiten nach dem EVA-Prinzip: Eingabe, Verarbeitung, Ausgabe. Dies bedeutet, dass eine Eingabe durch verschiedene Geräte erfolgt, vom System verarbeitet (Berechnungen) und anschliessend auf einem Ausgabegerät dem Benutzer oder einem anderen System übergeben wird. In C++ existieren mehrere sogenannte Kanäle für die Ein- und Ausgabe (engl. Input, Output), die der Programmierer ansprechen kann. Dabei muss er sich nicht darum kümmern, wie genau der jeweilige Bildschirm die Ausgabe umsetzt oder wie die Tastatur eingaben erkennt, da diese Funktionalitäten das Betriebssystem zur Verfügung stellt. Durch sogenannte Schnittstellen kann ein Programm auf diese Geräte zugreifen. C++ verwendet als Standardeingabekanal die Tastatur, für die Standardausgabe ist der Bildschirm vorgesehen. Beides lässt sich aber verändern, so dass auch von einer Datei gelesen oder auf das Netzwerk geschrieben werden kann (nicht Teil dieser Veranstaltung). 3 / 14

Überblick 1 4 / 14

In C++ ist die Ein- und Ausgabe nicht fester Bestandteil der Programmiersprache, da manche Geräte diese gar nicht benötigen (z.b. Mikrochips in Embedded Geräten). Um diese Funktionalität zu nutzen, muss diese vorher mittels include eingebunden werden. C++ nutzt sogenannte I/O Streams (Ströme), über die vom Programm aus Eingaben oder Ausgaben erfolgen. Die Anweisung dazu haben wir bereits im Hallo Welt-Programm gesehen. 1 # include <iostream > // ermoeglicht Verwendung von cout / cin 2 using namespace std; 3 4 int main () { 5 cout << " Hallo Welt "; // Ausgabe von Hallo Welt 6 return 0; 7 } 5 / 14

Ausgabeströme verketten Ausgabeströme lassen sich miteinander verketten, um mehrere Elemente wie Variablen und Strings auf einmal auszugeben. Der Operator << verbindet diese Elemente miteinander. 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 float mwst = 19; 6 cout << " Die Mehrwertsteuer betraegt " << mwst << "%"; 7 return 0; 8 } 6 / 14

Berechnungen in Ausgabeströmen Ausgabeströme sind in der Lage, die Ergebnisse von Berechnungen direkt auszugeben. 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 cout << " 2 * 3 = " << 2 * 3; 6 return 0; 7 } Hierbei ist zu beachten, dass abhängig vom verwendeten Compiler nicht vorhersehbar ist, in welcher Richtung die Berechnungen ausgeführt werden. int x = 2; cout << "x = " << x << ", x**2 = " << (x *= x); Zwei Ergebnisse sind hier möglich: von links nach rechts von rechts nach links x = 2, x**2 = 4 x = 4, x**2 = 4 7 / 14

formatieren Die Ausgabeströme lassen sich auf vielfältige Weise manipulieren, um eine andere Darstellungsweise zu erzeugen. Dazu muss die Headerdatei iomanip.h über #include eingebunden sein. Die folgende Tabelle zeigt einige dieser Manipulatoren: Manipulator dec hex oct flush endl setw(int) setprecision(int) Beschreibung Dezimale Zahlenausgabe (Standard) Hexadezimale Zahlenausgabe Oktale Zahlenausgabe Ausgabepuffer auf das Ausgabemedium leeren Ausgabe von \n (Zeilenumbruch) mit anschliessendem flush int setzt die minimale Ausgabebreite (nur unmittelbare Ausgabe, wird danach wieder auf 0 gesetzt) Ausgabegenauigkeit von Zahlen auf insgesamt int Stellen (gerundet) setfill(char) Fügt char als Füllzeichen an 8 / 14

Beispiele zur Ausgabemanipulation 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 cout << oct << 10 << endl ; 6 cout << hex << 10 << endl ; 7 cout << dec << 10 << endl << endl ; 8 9 cout << setfill ( 0 ) << setw (4) << 123 << endl ; 10 cout << setw (2) << 127 << endl ; 11 12 cout << setprecision (4) << 3.1415 << endl ; 13 cout << setw (10) << setprecision (4) << 3.2 << endl ; 14 return 0; 15 } Ausgabe: 12 a 10 0123 127 3.142 00000003.2 9 / 14

Weitere Manipulatoren Manipulator boolalpha noboolalpha showuppercase noshowuppercase fixed Beschreibung Bool sche Werte werden anstatt Integerwerten mit true und false dargestellt Gegenteil zu boolalpha Wandelt Strings vor der Ausgabe in Grossbuchstaben um Gegenteil zu showuppercase Erzwingt eine feste Anzahl von Dezimalstellen für Fliesskommazahlen scientific Wissenschaftliche Darstellungsweise für Fliesskommazahlen 10 / 14

Überblick 1 11 / 14

Variablenwerte lassen sich über cin von der Tastatur einlesen. Damit lassen sich Programme interaktiver gestalten. 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 float zahl ; 6 cout << " Eine Zahl eingeben, die quadriert werden soll : "; 7 cin >> zahl ; // einlesen der Variable zahl von Tastatur 8 cout << zahl << " quadriert ist " << zahl * zahl ; 9 return 0; 10 } Zu Beachten ist hier besonders die Richtung der Operatoren << und >>. Diese zeigen immer dorthin, wohin der Ein- bzw. fliesst. Beispielsweise zeigt der Operator in Zeile 7 auf die Variable (hier zahl), in die eingelesen werden soll. Bei cout weisen die Pfeile nach links, um anzuzeigen, dass hier eine Ausgabe stattfindet. 12 / 14

Eingabeströme verketten Es lassen sich mehrere Variablen über den gleichen einlesen. Um die Variablen bei der Eingabe voneinander zu trennen, muss ein Leerzeichen eingegeben werden. 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 float zahl1, zahl2 ; 6 cout << " Bitte zwei Zahlen zur Multiplikation eingeben : "; 7 cin >> zahl1 >> zahl2 ; // einlesen von zahl1 und zahl2 8 cout << zahl1 << " * " << zahl2 << " = " zahl1 * zahl2 ; 9 return 0; 10 } Puffer dienen dazu, die Eingaben im Speicher vorzuhalten, um die Werte dann den Variablen zuzuweisen. Durch Puffer können auch Eingaben auf langsamen Eingabegeräten (z.b. im Netzwerk) so lange gesammelt und vorgehalten werden, bis diese vollständig sind (nach Eingabe von Enter oder dem Trennzeichen). 13 / 14

Werden in Zeile 7 drei Zahlen statt nur zwei eingegeben, so verbleibt die dritte Zahl im Puffer und wird dann beim einlesen von zahl3 in Zeile 13 verwendet. Der Benutzer hat gar nicht die Chance, an dieser Stelle eine Zahl einzugeben. 14 / 14 Gepufferte Eingabe Mehr Eingaben als erwartet füllen die Variablen aus dem Puffer der Reihe nach auf und geben diese dann ebenso in dieser Reihenfolge wieder aus. 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 int zahl1, zahl2, zahl3 ; 6 cout << " Bitte zwei Zahlen eingeben : "; 7 cin >> zahl1 >> zahl2 ; 8 9 cout << " Zahl1 : " << zahl1 << endl 10 << " Zahl2 : " << zahl2 << endl ; 11 12 cout << " Und jetzt noch eine Zahl : "; 13 cin >> zahl3 ; 14 cout << " Zahl3 : " << zahl3 << endl ; 15 return 0; 16 }