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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: , 08:27 Uhr

2 Überblick 1 Dateien lesen und schreiben Flags zum Öffnen von Dateien Status des Dateistroms prüfen Streamposition bestimmen und verändern 2 Eingaben korrekt verarbeiten Wie kann ich in C / 27

3 Motivation Wir werden uns in diesem Kapitel mit dem Lesen und Schreiben von Dateien beschäftigen. Mit den uns bereits bekannten Operationen lassen sich Dateien bereits für die Eingabe lesen und auch schreiben, indem wir auf Betriebssystemebene die Ausgabe mit > in eine Datei umleiten: meinprogramm > dateiname.txt. Durch diese Befehl wird eine Datei dateiname.txt angelegt bzw. überschrieben, wenn diese Datei bereits existiert. Die ganze Ausgabe von meinprogramm wird nicht auf dem Bildschirm ausgegeben, sondern in dateiname.txt geschrieben. Mit >> wird an eine bestehende Datei angehängt, ohne deren Inhalt zu überschreiben. Durch Umleiten der Eingabe kann aus einer Datei die Eingaben für ein Programm gelesen werden: meinprogramm < eingaben.txt Diese Operationen sind jedoch ausserhalb des Einflusses unseres C++-Programms und wir möchten diese Funktionalität aus unserem Programm heraus selbst steuern. Dazu bedienen wir uns den Datei-Strömen (engl. file streams) zum lesen und schreiben von Dateien. wir betrachten dabei nur Textdateien. 3 / 27

4 Dateien lesen und schreiben Überblick 1 Dateien lesen und schreiben Flags zum Öffnen von Dateien Status des Dateistroms prüfen Streamposition bestimmen und verändern 2 Eingaben korrekt verarbeiten Wie kann ich in C / 27

5 Dateien lesen und schreiben Dateien zum Lesen und Schreiben öffnen Über die Headerdatei fstream wird die Funktionalität zum Lesen und Schreiben von Dateien zur Verfügung gestellt. Soll nur geschrieben werden, dann kann auch die Headerdatei ofstream genutzt werden. Ebenso kann, wenn nur gelesen werden soll, als Header ifstream zum Einsatz kommen. Der übliche Ablauf zum Lesen oder Schreiben von Dateien ist folgender: Objekt zum Lesen oder Schreiben im Programm anlegen Objekt mit dem Dateinamen zum öffnen verküpfen Text über das Objekt schreiben oder lesen Datei schliessen 5 / 27

6 Dateien lesen und schreiben Einfaches Beispiel zum Schreiben einer Datei 1 # include <fstream > 2 using namespace std; 3 4 int main () { 5 ofstream fileout ; 6 fileout. open (" beispiel. txt"); 7 fileout << " Das steht jetzt in der Datei."; 8 fileout. close (); 9 return 0; 10 } In Zeile 5 wird ein Objekt angelegt, dass ähnlich wie cout oder cin die Ausgabe in die Datei übernimmt. Der Name des Objekts kann beliebig vergeben werden, so lange dieser noch nicht verwendet wird. Die Datei beispiel.txt wird in Zeile 6 geöffnet und im aktuellen Verzeichnis angelegt, falls diese noch nicht existiert. Nun da die Datei geöffnet wurde, kann in Zeile 7 etwas in die Datei geschrieben werden. Zum Schluss muss noch die Datei geschlossen werden, damit alle gepufferten Schreibvorgänge abgeschlossen werden (Zeile 8). 6 / 27

7 Dateien lesen und schreiben Einfaches Beispiel zum Lesen einer Datei Nun wollen wir den gerade geschriebenen Inhalt der Datei wieder auslesen und auf dem Bildschirm anzeigen. 1 # include <iostream > 2 # include <fstream > 3 # include <string > 4 using namespace std; 5 6 int main () { 7 string dateizeile ; 8 ifstream fin; 9 fin. open (" beispiel. txt"); 10 getline (fin, dateizeile ); 11 fin.close (); 12 cout << " Zeile in der Datei : " << dateizeile << endl ; 13 return 0; 14 } Wir benötigen einen String dateizeile, in dem wir die gelesene Zeile aus der Datei aufbewahren können. Eine komplette Zeile lässt sich mittels der Funktion getline einlesen. Es wird das mit der Datei verknüpfte Objekt und der String, in den diese Zeile gespeichert werden, übergeben (Zeile 10). Nach dem Schliessen der Datei wird der gelesene String in Zeile 12 ausgegeben. 7 / 27

8 Dateien lesen und schreiben Variablen als Dateinamen Oft will man dem Benutzer die Möglichkeit geben, den Dateinamen selbst einzugeben. Dabei müssen zwei Dinge beachtet werden. Unter Windows müssen die Pfadangaben mit \ (Backslash) von denen der Programmiersprache unterschieden werden. Aus diesem Grund müssen alle Vorkommen von \ durch \\ in Strings ersetzt werden. string dateiname = "c:\\temp\\meinedatei.txt"; Bei der Verwendung von open() wird ein String im C-Stil erwartet. Aus diesem Grund kann keine Variable vom Typ string ohne weiteres dort eingesetzt werden. Jedoch lässt sich ein solcher String über die Funktion c_str() umwandeln. So kann beispielsweise der Dateiname vom Benutzer eingelesen werden: 1 string dateiname ; 2 ifstream eingabe ; 3 cout << " Bitte geben Sie den Namen der Eingabedatei an: "; 4 cin >> dateiname ; 5 eingabe. open ( dateiname. c_str ()); // umwandeln in C- String 8 / 27

9 Flags zum Öffnen von Dateien Überblick 1 Dateien lesen und schreiben Flags zum Öffnen von Dateien Status des Dateistroms prüfen Streamposition bestimmen und verändern 2 Eingaben korrekt verarbeiten Wie kann ich in C / 27

10 Flags zum Öffnen von Dateien Modi zum Öffnen von Dateien Der Funktion open lässt sich ein weiterer Parameter übergeben, der die Art (Modus) beschreibt, wie die Datei zu öffnen ist. Dies bestimmt massgeblich, was mit der Datei passieren wird, so lange diese geöffnet ist. Die folgenden Möglichkeiten stehen zur Verfügung: Modus ios::in ios::out ios::binary ios::ate ios::app ios::trunc Beschreibung Für Leseoperationen öffnen. Für Ausgabeoperationen öffnen. Datei im binären Modus öffnen. Die Startposition an das Ende (at end) der Datei setzen. Falls dieser Modus nicht gesetzt ist, wird am Anfang der Datei begonnen. Alle Ausgabeoperationen werden am Dateiende durchgeführt, der neue Inhalt wird angehängt (engl. append). Funktioniert nur bei reinen Ausgabeoperationen. Falls eine bereits existierende Datei bei Ausgabeoperationen geöffnet wird, wird der vorherige Inhalt gelöscht (engl. truncate = abschneiden, kürzen) und durch den neuen Inhalt ersetzt. 10 / 27

11 Flags zum Öffnen von Dateien Standardflags verknüpfen Die folgende Tabelle zeigt die Standardeinstellungen für die verschiedenen Dateiobjekte für den Fall, dass keine Flags bei open() angegeben werden: Header ofstream ifstream fstream Standardmodus ios::out ios::in ios::in ios::out Der letzte Eintrag in der Tabelle zeigt, dass sich die Flags über den bitweisen ODER-Operator ( ) auch miteinander kombinieren lassen. So wird beispielsweise über die folgende Anweisung ofstream ausgabe("beispiel.txt", ios::out ios::app); die Datei beispiel.txt zum Schreiben geöffnet, der Text an den bestehenden Inhalt angehängt und das alles in einer einzigen Anweisung. Auf diese Weise lassen sich beispielsweise Logdateien anlegen, welche die Ausgaben des Programms über mehrere Aufrufe hinweg protokollieren. 11 / 27

12 Status des Dateistroms prüfen Überblick 1 Dateien lesen und schreiben Flags zum Öffnen von Dateien Status des Dateistroms prüfen Streamposition bestimmen und verändern 2 Eingaben korrekt verarbeiten Wie kann ich in C / 27

13 Status des Dateistroms prüfen Motivation Beim Arbeiten mit Dateien kann eine ganze Menge schief gehen und wir als Programmierer sollten unsere Programme möglichst robust gegen solche Fehler machen. Nur so können wir uns darauf verlassen, die richtigen Informationen aus den Dateien zu bekommen bzw. in diese abzulegen. Die folgende Liste zeigt typische Probleme, auf die man in seinem Programm achten sollte: Datei kann nicht geöffnet werden ungültiger/nicht vorhandener Dateiname oder Pfad zur Datei Keine Berechtigung zum Lesen/Schreiben der Datei Schreiben unmöglich durch volles oder defektes Dateisystem/Speichermedium Der angegebene Modus wird vom Betriebssystem nicht akzeptiert Neue Daten können nicht in die Datei geschrieben werden Gelesene Datei ist im falschen Format (z.b. Buchstaben statt int) Für diese Fälle stehen uns eine Reihe von Möglichkeiten zur Verfügung, den Status des Dateistroms zu überprüfen und ggfs. darauf zu reagieren. 13 / 27

14 Status des Dateistroms prüfen Prüfen, ob Datei geöffnet werden konnte Die Funktion is_open() gibt true zurück, wenn die Datei mit dem Stream-Objekt erfolgreich verknüpft werden konnte (egal ob gelesen oder geschrieben wird). Andernfalls wird false zurückgegeben. Dies lässt sich im Programm nutzen, um die Verarbeitung sofort zu beenden, sollte die Datei nicht geöffnet werden können. 1 # include <fstream > 2 # include <iostream > 3 using namespace std; 4 5 int main () { 6 ofstream fout (" beispiel. txt"); // Datei zum schreiben oeffnen 7 if ( fout. is_open ()) { // hat es geklappt? 8 fout << " Das steht jetzt in der Datei."; 9 fout. close (); // Datei schliessen 10 } else cerr << " Konnte Datei nicht oeffnen!"; // Fehlerfall 11 return 0; 12 } In der 7. Zeile wird geprüft, ob die Datei korrekt geöffnet werden konnte. In diesem Fall wird etwas in die Datei geschrieben und diese danach wieder geschlossen. Im Fehlerfall wird in Zeile 10 eine Fehlermeldung auf die Standardfehlerausgabe (cerr) des Betriebssystems übergeben. 14 / 27

15 Status des Dateistroms prüfen Zustand des Dateistroms abfragen Der Dateistrom kann während des Lese- oder Schreibvorgangs unerwarteten Änderungen unterworfen sein. Aus diesem Grund sollte dessen Status ständig geprüft werden, um keine ungültigen Daten zu erzeugen. Die folgenden Funktionen stehen zur Prüfung des Streamzustandes zur Verfügung: bad(): gibt true zurück, falls eine Lese- oder Schreibaktion fehlschlägt. Dies kann auftreten, wenn eine Datei geschrieben wird, die nicht zum Schreiben geöffnet wurde oder das Dateisystem keinen freien Speicherplatz aufweist. fail(): ist true, wenn die Fälle von bad() eintreten. Zusätzlich wird auf Formatierungsfehler geprüft, wenn z.b. Buchstaben statt der erwarteten Integer-Zahlen gelesen werden. eof(): true, für den Fall, das beim Lesen das Dateiende (engl. end of file) erreicht wurde. good(): gibt false für alle Fällen zurück, in denen die obigen Funktionen true liefern. 15 / 27

16 Status des Dateistroms prüfen Beispiel zur Verwendung der Zustandsabfragen 1 # include <iostream > 2 # include <fstream > 3 # include <cstdlib > // wegen exit () 4 # include <string > 5 using namespace std ; 6 7 int main () { 8 string zeile ; 9 int zaehler = 0; 10 ifstream fin(" beispiel. txt "); 11 if (! fin.good ()) { 12 cerr << " Konnte Datei nicht oeffnen!"; 13 exit ( -1); 14 } 15 while ( getline (fin, zeile )) 16 cout << ++ zaehler << ". Zeile : " << zeile << endl ; 17 fin.close (); 18 return 0; 19 } In Zeile 11 wird der Zustand des Streams geprüft und im Falle eines erfolglosen Öffnens eine Fehlermeldung ausgegeben und danach das Programm beendet. Ebenso wäre eine verkürzte Form if (!fin) möglich, um den Fehler abzufangen. 16 / 27

17 Streamposition bestimmen und verändern Überblick 1 Dateien lesen und schreiben Flags zum Öffnen von Dateien Status des Dateistroms prüfen Streamposition bestimmen und verändern 2 Eingaben korrekt verarbeiten Wie kann ich in C / 27

18 Streamposition bestimmen und verändern Streamposition Sowohl ifstream als auch ofstream besitzen spezielle Zeiger innerhalb des Datenstroms. Bei ifstream ist dies das Element, das bei der nächsten Eingabeoperation gelesen wird, weshalb es auch der get Pointer genannt wird. Umgekehrt wird bei ofstream ein Zeiger auf die Positition, an der die nächste Schreiboperation durchgeführt wird, genutzt. Dieser wird als put-pointer bezeichnet. Infstream sind beide verfügbar. Diese beiden Zeiger lassen sich über die folgenden Funktionen verändern: tellg() und tellp(): Geben jeweils die Position im Lese- (tellg()) und Schreibstrom (tellp()) als Integer zurück und benötigen keine Argumente. seekg() und seekp(): Ändert die Position der get- und put-ströme. 18 / 27

19 Streamposition bestimmen und verändern Streamposition verändern Varianten von seekg() und seekp() sind seekg(position) und seekp(position). Mit position wird der Zeiger im Strom auf diese absolute Position innerhalb der Datei gesetzt, beginnend vom Dateianfang. Der Typ dieses Parameters ist der gleiche, wie er von tellg() und tellp() zurückgegeben wird: ein Integer. Weiterhin gibt es noch seekg(offset, direction) und seekp(offset, direction). Damit lässt sich die Position innerhalb des Streams ebenfalls verschieben und zwar beginnend von offset, der auch einen Integerwert darstellt. Dies kann in die Richtung geschehen, die von direction angegeben wird. Hier sind folgende Werte möglich: direction ios::beg ios::cur ios::end Beschreibung Offset, der vom Beginn des Datenstroms an gezählt wird. Offset, der von der aktuellen Position des Streampointers an gezählt wird. Offset, der vom Ende des Datenstroms an gezählt wird. 19 / 27

20 Streamposition bestimmen und verändern Beispiel zu Streampositionen Dieses Programm (mytellg) ermittelt die Dateigrösse, die bei nach der Erstellung durch fout mit der Zeichenkette Test als Inhalt entsteht. 1 # include <iostream > 2 # include <fstream > 3 using namespace std; 4 5 int main () { 6 long start, ende ; 7 ofstream fout (" beispiel. txt"); 8 fout << " Test "; 9 fout. close (); ifstream fin (" beispiel. txt"); 12 start = fin. tellg (); // hole die Position vom Dateianfang 13 fin. seekg (0, ios :: end); // ans Dateiende springen 14 ende = fin. tellg (); // hole die Position vom Dateiende 15 fin.close (); 16 cout << " Dateigroesse : " << (ende - start ) << " Bytes.\n"; 17 return 0; 18 } $./mytellg Dateigroesse: 4 Bytes $ ls -lh beispiel.txt -rw-r--r-- 1 bcr staff 4B Dec 1 22:43 beispiel.txt 20 / 27

21 Streamposition bestimmen und verändern Lesen und Schreiben in der gleichen Datei 1 # include <fstream > 2 # include <iostream > 3 # include <string > 4 using namespace std; 5 6 int main () { 7 int i = 0; 8 fstream FIO(" FIO. txt", ios :: out ios :: trunc ); 9 FIO. close (); // nun existiert FIO. txt als leere Datei 10 FIO. open (" FIO. txt", ios :: in ios :: out); 11 for ( ; i< 10; i++) // Zahlen in Datei schreiben 12 FIO << i << ; 13 FIO << endl ; 14 FIO. seekg (0); // zurueck zum Dateianfang 15 while (! FIO >> i) // einlesen 16 if (! FIO.eof ()) cout << i << ; // Kontrollausgabe 17 cout << endl ; 18 FIO. clear (); // EOF - Status loeschen 19 FIO. seekp (5); // Position 5 suchen 20 FIO << " Hallo "; // ueberschreiben 21 FIO. seekg (0); // zurueck zum Dateianfang 22 string puffer ; 23 getline (FIO, puffer ); // Zeile einlesen 24 cout << puffer << endl ; // und ausgeben 25 FIO.close (); 26 return 0; 27 } 21 / 27

22 Streamposition bestimmen und verändern Korrektes Einlesen bis zum Dateiende Falsch 1 int i = 0; 2 while (! cin.eof ()) { 3 cin >> x; 4 i++; 5 //... 6 } Der EOF-Zustand wird im obigen Beispiel nicht in jedem Fall gesetzt, sondern evtl. erst nachdem ein Lesevorgang nach dem Dateiende versucht wurde. Beispielsweise kann man beim Einlesen von Tastatur auch nicht erwarten, dass C++ in der Lage ist, vorherzusehen, ob noch Zeichen kommen werden. Besser ist die folgende Schreibweise: Richtig 1 int i = 0; 2 while (cin >> x) { 3 i++; 4 //... 5 } 22 / 27

23 Eingaben korrekt verarbeiten Überblick 1 Dateien lesen und schreiben Flags zum Öffnen von Dateien Status des Dateistroms prüfen Streamposition bestimmen und verändern 2 Eingaben korrekt verarbeiten Wie kann ich in C / 27

24 Eingaben korrekt verarbeiten Eingaben korrekt verarbeiten Beim Einlesen von Tastatur kann es vorkommen, dass der Benutzer ein falsches Zeichen (Buchstabe statt Zahl) eingibt. Hat man diese Eingabe in eine Schleife gebaut, um gewisse Werte abzufangen, führt diese Eingabe zu einer Endlosschleife, wie im folgenden Fall: 1 # include <iostream > 2 using namespace std; 3 int main () { 4 int i = 0; 5 cout << " Zahlen eingeben ( Trenner : Space ), Abbruch mit -1:"; 6 while (i!= -1) { 7 cin >> i; 8 cout << " Sie haben " << i << " eingegeben.\n"; 9 } 10 return 0; 11 } Zahlen eingeben (Trenner: Space), Abbruch mit -1: 2 3 a Zahlen eingeben (Trenner: Space), Abbruch mit -1: Sie haben 0 eingegeben. Zahlen eingeben (Trenner: Space), Abbruch mit -1: Sie haben 0 eingegeben / 27

25 Eingaben korrekt verarbeiten Die Lösung des Problems Eine Möglichkeit, diesen Fehler zu umgehen, ist, die cin-anweisung in die Abbruchbedingung der while-schleife zu verschieben. 1 # include <iostream > 2 using namespace std; 3 int main () { 4 int i = 0; 5 cout << " Zahlen eingeben ( Trenner : Space ), Abbruch mit -1:"; 6 while (cin >> i) { 7 if (i == -1) break ; 8 cout << " Sie haben " << i << " eingegeben.\n"; 9 } 10 return 0; 11 } Zahlen eingeben (Trenner: Space), Abbruch mit -1: 2 3 a Sie haben 2 eingegeben. Sie haben 3 eingegeben. In diesem Fall wird die while-schleife abbrechen, wenn ein falsches Zeichen oder -1 eingegeben wurde. Eine noch kürzere Schreibweise ergibt sich durch folgende Bedingung der while-schleife: while ((cin >> i) && (i!= -1)) 25 / 27

26 Eingaben korrekt verarbeiten Wie kann ich in C++... Überblick 1 Dateien lesen und schreiben Flags zum Öffnen von Dateien Status des Dateistroms prüfen Streamposition bestimmen und verändern 2 Eingaben korrekt verarbeiten Wie kann ich in C / 27

27 Eingaben korrekt verarbeiten Wie kann ich in C++... Wie kann ich in C++... Frage: Wie kann ich prüfen, ob eine bestimmte Taste vor dem ENTER bei der Eingabe gedrückt wurde? Wie kann ich erreichen, dass die eingegebenen Zeichen nicht auf dem Bildschirm ausgegeben werden (für Passworteingaben)? Wie kann ich den Cursor auf dem Bildschirm platzieren? Wie kann ich den Bildschirminhalt löschen? Wie kann ich die Farben auf dem Bildschirm ändern? Antwort: Dies ist keine Standard-Funktion von C++. C++ erwartet weder eine angeschlossene Tastatur noch einen Bildschirm (denken Sie an embedded-geräte, die das auch nicht benötigen). Jeder C++-Compilerhersteller implementiert diese Funktionen für die verschiedenen unterstützten Betriebssysteme anders. Lesen Sie die dazugehörige Dokumentation! 27 / 27

4 Schleifen und Dateien

4 Schleifen und Dateien 4 Schleifen und Dateien 4.1 Übungsaufgabe 4.1.1 Aufgabe 1 Schreiben Sie drei C++ Programme: pword_for.cxx, pword_while.cxx, pword_do.cxx. Die Programme sollen den Benutzer höchstens 5 Mal nach einem Passwort

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 23 Kapitel 16 Datei Aus- und Eingabe Seite 1 von 23 Datei Aus- und Eingabe - Für die Ausgabe auf Dateien und die Eingabe von Dateien werden die Streams ofstream und ifstream verwendet. - Sie sind in der Bibliothek

Mehr

Ein- und Ausgabe (I/O)

Ein- und Ausgabe (I/O) 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

Mehr

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

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

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe Aufgabe 5: Bücher verwalten Für das Literaturverzeichnis einer Abschlussarbeit soll ein Programm zur Verwaltung von Bücherlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Buch die

Mehr

Kontrollstrukturen -- Schleifen und Wiederholungen

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

Mehr

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

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten

Mehr

Programmierkurs Kapitel 4: Dateien Seite 1. Verwaltungfeld im Speicher. 4.1 Alternativen zur Programmierung der Eingabe und der Ausgabe

Programmierkurs Kapitel 4: Dateien Seite 1. Verwaltungfeld im Speicher. 4.1 Alternativen zur Programmierung der Eingabe und der Ausgabe Programmierkurs Kapitel 4: Dateien Seite 1 4 Dateien Verwaltungfeld im Speicher Dateivariable im Programm Dateizeiger Schreib-/Lesefeld im Programm EOF 4.1 Alternativen zur Programmierung der Eingabe und

Mehr

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet

Mehr

Hydroinformatik I: IO - Files

Hydroinformatik I: IO - Files Hydroinformatik I: IO - Files Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 02. Dezember 2016 1/24

Mehr

ios fstream ifstream

ios fstream ifstream 4 Grundlagen der Dateiarbeit 4.1 File-Stream-Klassen Mit der Beendigung eines Programms gehen die im Hauptspeicher gehaltenen Daten des Programms verloren. Um Daten permanent zu speichern, müssen sie in

Mehr

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christof Beyer Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 7-1 Bisher eingeführt war für Namen nur der Datentyp char. Dieser erlaubt das Speichern

Mehr

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

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Kapitel 8: Abstrakte Datentypen. Inhalt. Definition ADT Keller ADT Schlange

Kapitel 8: Abstrakte Datentypen. Inhalt. Definition ADT Keller ADT Schlange Wintersemester 005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

7.1 Motivation. Tastatureingabe. Inhalt von input.txt. Bildschirmausgabe. Inhalt von output.txt. i =33 j = 44

7.1 Motivation. Tastatureingabe. Inhalt von input.txt. Bildschirmausgabe. Inhalt von output.txt. i =33 j = 44 7. Stream-Klassen #include #include using namespace std; void main() { //Teil 1 int i,j; fstream eingabe("input.txt,ios::in); fstream ausgabe("output.txt,ios::out); //Teil 2 if ( eingabe>>

Mehr

9 Streams. 9.1 Einführung und Architektur

9 Streams. 9.1 Einführung und Architektur 9.1 9 Streams 9.1 Einführung und Architektur Die C++ Standardbibliothek stellt eine Klassehierarchie zum Umgang mit Streams zur Verfügung, welche im wesentlichen folgende Gebiete abdeckt: Umgang mit Inhalten

Mehr

Ein- und Ausgabe mit Dateien

Ein- und Ausgabe mit Dateien Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main 2 Vorbemerkungen

Mehr

Grundlagen der Informatik 6. Arrays I

Grundlagen der Informatik 6. Arrays I 6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt

Mehr

Mapra: C++ Teil 7. Felix Gruber, Michael Rom. 14. Juni 2016 IGPM. Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 7 14.

Mapra: C++ Teil 7. Felix Gruber, Michael Rom. 14. Juni 2016 IGPM. Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 7 14. Mapra: C++ Teil 7 Felix Gruber, Michael Rom IGPM 14. Juni 2016 Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 7 14. Juni 2016 1 / 20 Themen vom letzten Mal Klassen this-pointer Virtuelle Methoden Bildbearbeitung

Mehr

C++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16

C++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16 C++ Teil 7 Sven Groß 3. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni 2016 1 / 16 Themen der letzten Vorlesung dynamische Speicherverwaltung (Wdh.) Cast bei Zeigern STL-Vektoren + Live Programming

Mehr

Informatik für Elektrotechnik und Informationstechnik

Informatik für Elektrotechnik und Informationstechnik Informatik für Elektrotechnik und Informationstechnik Praktikum 1 Wintersemester 2013/14 1 Kennenlernen der Entwicklungsumgebung Netbeans Netbeans ist eine moderne Entwicklungsumgebung für mehrere Programmiersprachen,

Mehr

Implementation VL3 Gruppe A

Implementation VL3 Gruppe A Doubravsky Filip Rot Drazen Implementation VL3 Gruppe A Datei Anzahl diese Programms: main.cpp Menü mit Exit eingabe.hpp eingabe.cpp Eingabe und Datei öffnen und einlesen translate.hpp translate.cpp Speicherung

Mehr

E-/A-Funktionalität nicht Teil der Programmiersprache

E-/A-Funktionalität nicht Teil der Programmiersprache C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle

Mehr

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei

Mehr

C++ für Ingenieure. Einführung in die objektorientierte Programmierung 4 Objektorientierte Programmierung. 4.8 Streams und Dateien HARALD NAHRSTEDT

C++ für Ingenieure. Einführung in die objektorientierte Programmierung 4 Objektorientierte Programmierung. 4.8 Streams und Dateien HARALD NAHRSTEDT 309 HARALD NAHRSTEDT C++ für Ingenieure Einführung in die objektorientierte Programmierung Kapitel 4 Objektorientierte Programmierung Erstell am Beschreibung 4.8 Streams und Dateien 310 4 Objektorientierte

Mehr

Informatik II Datenstrukturen und Algorithmen in C/C++ Nachtrag

Informatik II Datenstrukturen und Algorithmen in C/C++ Nachtrag Informatik II Datenstrukturen und Algorithmen in C/C++ Nachtrag Dr. Stefan Lewandowski 1 Version 25. Juni 2011 Dieses Skript darf nur mit ausdrücklicher Zustimmung des Autors vervielfältigt werden. Die

Mehr

Grundlagen der Programmentwicklung

Grundlagen der Programmentwicklung Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 13. Klassenbibliotheken Klassenbibliotheken Seite 2 Sammlung von Algorithmen und Klassen in Klassenbibliotheken: Konzept:

Mehr

Operatoren und Ausdrücke

Operatoren und Ausdrücke Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 11 Motivation Es gibt eine Reihe

Mehr

Informationsverarbeitung

Informationsverarbeitung 1/19 Informationsverarbeitung Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2011/2012 Vorlesung 13 (Download Quelldateien)

Mehr

Ein- und Ausgabe mit Dateien

Ein- und Ausgabe mit Dateien Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main Vorbemerkungen

Mehr

For matierte Ein-/Ausgabe iostream: multiple inheritance von istream und ostream Weitere abgeleitete Klassen (z. B. Ausgabe nach Strings)

For matierte Ein-/Ausgabe iostream: multiple inheritance von istream und ostream Weitere abgeleitete Klassen (z. B. Ausgabe nach Strings) Übersicht Ersatz für stdio in C Typensicher Benutzt C++-Sprachfeatures Ein-/Ausgabe für selbstdefinierte Datentypen #include Mehrere Ebenen streambuf Schnelle (gepuffer te), zeichenweise Ein-/Ausgabe

Mehr

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

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

Mehr

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

Einführung in I/O und File-Handling in C ++ 1/34 Einführung in I/O und File-Handling in C ++ Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/34 Outline 1 Grundlagen

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

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

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole Leibniz Universität IT Services Anja Aue Eingabe (input) und Ausgabe (output) In diesem Kapitel wird nur das Lesen von und das

Mehr

Übersicht Shell-Scripten

Übersicht Shell-Scripten !!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,

Mehr

Mapra: C++ Teil 3. Felix Gruber. 29. April IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29.

Mapra: C++ Teil 3. Felix Gruber. 29. April IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29. Mapra: C++ Teil 3 Felix Gruber IGPM, RWTH Aachen 29. April 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29. April 2015 1 / 11 Themen vom letzten Mal Debuggen mit gdb Zusammengesetzte Datentypen

Mehr

Grundlagen der Informatik 5. Kontrollstrukturen II

Grundlagen der Informatik 5. Kontrollstrukturen II 5. Kontrollstrukturen II Schleifen Sprünge Grundlagen der Informatik (Alex Rempel) 1 Schleifen Schleifen allgemein und in C++ Schleifen (Loops) ermöglichen die Realisierung sich wiederholender Aufgaben

Mehr

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien Informatik I SS 2003 Dateioperationen 1 Textdateien, Öffnen Abspeichern und Einlesen von Texten (Strings) in Dateien 1. Das Öffnen einer Datei a) Deklaration eines Zeigers auf eine Datei FILE *pfile; b)

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! Erste Zeile eines PERL-Scripts: #! /usr/bin/perl Variablen in PERL: Normale Variablen beginnen mit einem $-Zeichen Array-Variablen beginnen mit

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

Quiz und Übungen. C++ Übung am 19. Mai 2016

Quiz und Übungen. C++ Übung am 19. Mai 2016 Quiz und Übungen C++ Übung am 19. Mai 2016 Was ist der Unterschied zwischen kompilierenden und interpretierenden Programmiersprachen? Was ist der Unterschied zwischen kompilierenden und interpretierenden

Mehr

Programmieren in C++ Stream I/O

Programmieren in C++ Stream I/O Programmieren in C++ Stream I/O Inhalt Datenströme (Streams) Standard Input and Output C++ Streams () Formatierte Ein- und Ausgabe Format-Manipulatoren Textdatei schreiben und lesen Binärdatei

Mehr

Linux-Einführung Übung

Linux-Einführung Übung Linux-Einführung Übung Mark Heisterkamp 24. 25. Februar 2010 1 Einführung und Grundlagen 1.1 Erste Schritte... 1.1.1 Xterminalfenster Öffnen Sie ein weiteres Xterminalfenster mit der Maus. mittels Kommando.

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

Mehr

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

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Michael Jugovac Dominik Kopczynski Jan Quadflieg Till Schäfer Stephan Windmüller Dortmund, den 30. Oktober 2014 Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Es können 12 (+5

Mehr

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 10: Arbeiten mit Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in C 4. Bildschirm

Mehr

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Sequentielle Textdateien HARALD NAHRSTEDT. Erstellt am

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Sequentielle Textdateien HARALD NAHRSTEDT. Erstellt am HARALD NAHRSTEDT Excel + VBA Ergänzungen Kapitel 1 Einführung in VBA 1.5.23 Sequentielle Textdateien Erstellt am 12.02.2012 Beschreibung In Textdateien lassen sich schnell Informationen speichern und auch

Mehr

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Dateizugriff unter C

Dateizugriff unter C Begriffe Dateizugriff unter C Datei = sequentielle Ansammlung von Datenbytes, z.b. auf einer Festplatte Auch Bildschirm und Tastatur werden wie Dateien behandelt: Bildschirm ist die Datei stdout Tastatur

Mehr

Kapitel 8: Elementare Datenstrukturen. Inhalt. Definition ADT Keller ADT Schlange ADT Liste ADT Binärbaum

Kapitel 8: Elementare Datenstrukturen. Inhalt. Definition ADT Keller ADT Schlange ADT Liste ADT Binärbaum Wintersemester 27/8 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 25 Kapitel 9 Schleifen Seite 1 von 25 Schleifen - Schleifen werden zur wiederholten Ausführung von Anweisungen verwendet. - Es werden drei Arten von Schleifen unterschieden: o for -Schleife o while -Schleife

Mehr

Klausur Informatik WS 2012/13

Klausur Informatik WS 2012/13 Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 04: Weitere Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Teil 1: Weitere Grundlagen von C++ Das assert Statement File Input und

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Dateien mit wahlfreiem Zugriff (Random Access Files)

Dateien mit wahlfreiem Zugriff (Random Access Files) Dateien mit wahlfreiem Zugriff (Random Access Files) Anforderungen Direkter Zugriff auf Datensätze Schneller Zugriff ohne sequentiellen Suchvorgang Einfügen von Datensätzen ohne andere Datensätze zu überschreiben

Mehr

Kap 9. Bitoperationen und -strukturen

Kap 9. Bitoperationen und -strukturen Kap 9. Bitoperationen und -strukturen 9.1 Anwendung von Bits Im Gegensatz zu den üblicherweise Byte-orientierten Daten gibt es auch Bit-Anwendungsbeispiele Statusanzeigen bei Ein-/Ausgabe (Stream-Klassen)

Mehr

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe. Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

Zeiger und dynamischer Speicher

Zeiger und dynamischer Speicher Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 9.1.2013 IAM Institut für Angewandte Mathematik Fortgeschrittene Ein- und Ausgabe Bisher: Ein- und Ausgabe nur über die Kommandozeile Erweiterung: Konzept

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11

Mehr

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. C++ Teil 3 3.3 Schleifen Man kann bestimme en in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. for-schleife for-schleife while-schleife do-while-schleife for ( Ausdruck1;

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU, Sommersemester 2008 4-1 Übung Aufgabe: Berechnen Sie für die Klimastation Schleswig des Deutschen Wetterdienstes

Mehr

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes

Mehr

DHBW Karlsruhe, Angewandte Informatik Programmieren in JAVA https://www.iai.kit.edu/~javavorlesung W. Geiger, T. Schlachter, C. Schmitt, W.

DHBW Karlsruhe, Angewandte Informatik Programmieren in JAVA https://www.iai.kit.edu/~javavorlesung W. Geiger, T. Schlachter, C. Schmitt, W. Palindrome speichern Klasse: PalindromeFile Erweitern Sie die Palindrom-Aufgabe vom Aufgabenblatt Strings derart, dass wenn die eingelesene Zeichenkette ein Palindrom ist, diese in eine Datei geschrieben

Mehr

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 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 9-1 Studentendatei Sie sollen ein Programm zur Verwaltung von Studenten (Büchern, Autos, Supermarktartikeln, etc...) schreiben.

Mehr

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum Betriebssysteme 1. Aufgabe (1) FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Informatik I. Matthias Geel Büro: IFW A Blog:

Informatik I. Matthias Geel Büro: IFW A Blog: Informatik I Matthias Geel Büro: IFW A45.2 E-Mail: geel@inf.ethz.ch Blog: http://blogs.ethz.ch/infitet09/ Übersicht 1. Nachbesprechung Übung 5 2. Theorie: Ein- und Ausgabe 3. Vorbesprechung Übung 7 09.11.2009

Mehr

Informatik I - Übung 2 Programmieren in Eclipse

Informatik I - Übung 2 Programmieren in Eclipse Informatik I - Übung 2 Programmieren in Eclipse. / Info1 / HelloWorld / HelloWorld Wort1 Wort2 Daniel Hentzen dhentzen@student.ethz.ch 5. März 2014 1.2 Häufigste Fehler im Terminal auf Gross-/Kleinschreibung

Mehr

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden

Mehr

Eine Mini-Shell als Literate Program

Eine Mini-Shell als Literate Program Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................

Mehr

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Dateien, sowie Records und Funktionen Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl möglicher

Mehr

Dateien lesen und schreiben mit php

Dateien lesen und schreiben mit php Dateien lesen und schreiben mit php (fopen(), fgets(), fread(), fwrite, fclose(), fputs(), file_get_contents()) Der Dateizugriff (anfügen und lesen) fopen(filename, mode) Öffnen vom lokalen Dateisystem

Mehr

6 UTF8 und Stringverarbeitung

6 UTF8 und Stringverarbeitung 6 UTF8 und Stringverarbeitung 6.1 Übungsaufgabe 6.1.1 Aufgabe 1 Verwenden Sie die Musterlösung aus Übung 3-2 und machen Sie das Programm unicodefähig. Arbeiten Sie mit wcin, wcout, wstrings, iswpunct,

Mehr

13 Reguläre Ausdrücke

13 Reguläre Ausdrücke 13 Reguläre Ausdrücke 13.1 Übungsaufgabe 13.1.1 Aufgabe 1 Schreiben Sie ein C++ Programm, das eine txt-datei (UTF8 kodiert) öffnet und mit wcin alle Wörter einliest, Punktuationszeichen am Anfang und Ende

Mehr

Funktionales C++ zum Ersten

Funktionales C++ zum Ersten Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5 Zentrum für Angewandte Informatik Köln Arbeitsgruppe Faigle / Schrader Universität zu Köln Lösungen zum Übungsblatt 3 Programmierkurs C++ Nils Eissfeldt und Jürgen Gräfe. November 001 Aufgabe 5 Innerhalb

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen Informatik I Übung 2 : Programmieren in Eclipse 5. März 2014 Daniel Hentzen dhentzen@student.ethz.ch Downloads : http://n.ethz.ch/~dhentzen/download/ Heute 1. Nachbesprechung Übung 1 2. Theorie 3. Vorbesprechung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 17 Einstieg in die Informatik mit Java Methoden und Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick 2 Felder als Parameter bei Methoden 3 Feld

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

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

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

Grundlegende Anweisungen in C++

Grundlegende Anweisungen in C++ Grundlegende in C++ Peter Bastian Dieses Dokument basiert auf einer ursprünglich englischen Fassung von Katharina Vollmayr-Lee (http: // www. eg. bucknell. edu/ ~ kvollmay/ caps_ s2010/ C+ +_ summary.

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr