Input, Output, Dateien

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

C Überlebenstraining

Grundlagen der Programmierung

182. stdio stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h>

Dynamischer Speicher

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

Modellierung und Programmierung

10 Lesen und Schreiben von Dateien

Datei-Verarbeitung. Peter Sobe 60

Übersicht. Informatik 1 Teil 10 Dateien

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

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Die Programmiersprache C99: Zusammenfassung

Javakurs 2013 Objektorientierung

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Datentypen: Enum, Array, Struct, Union

Physische Dateistrukturen

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Hello C. C-Kurs 2013, 1. Vorlesung. Folien: Theresa Enghardt. 7. September 2013

Programmieren in C Klausur im Sommersemester 2015 Seite 1 von 1

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Zeichenketten (Strings) in C

Hello world. Sebastian Dyroff. 21. September 2009

4 Schleifen und Dateien

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Primitive Datentypen

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Deklarationen in C. Prof. Dr. Margarita Esponda

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Programmierung in C. Grundlagen. Stefan Kallerhoff

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

GI Vektoren

C programmieren. Jürgen Wolf

Wima 1 - Praktikum (Woche 4)

Einführung in die Programmierung für Physiker. Die Programmiersprache C Ein- und Ausgabe

Übungspaket 30 Kopieren von Dateien

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Zusammenfassung des Handzettels für Programmieren in C

Elementare Konzepte von

Grundlagen der Programmierung

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

Dr. Monika Meiler. Inhalt

Die Bibliothek SysLibFile.lib

Programmierung mit C Zeiger

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Moderne C-Programmierung

+ C - Formatierte Eingabe mit scanf()

Programmier-Befehle - Woche 10

Einstieg in die Informatik mit Java

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

Buch-Add-Ons. Jürgen Bayer. Object Pascal-Tipps und Tricks. 1 Konvertieren und auf numerische Werte überprüfen 2

Ein erstes Java-Programm

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

entweder: zeilenweise fgets() oder: zeichenweise fgetc()

Einführung in die C-Programmierung

Programmieren in Java

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Programmieren 2 Selbststudium Semesterwoche 6

Testklausur zur Vorlesung. Programmieren in C

Die Programmiersprache C

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

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

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

MatLab Teil 2: weitere Operationen, Dateien und Bildformate

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

Definition: Die Sprache C++ ist die Menge aller korrekter C++-Programme. Theoretischer Aspekt. // mile2km.cpp: Umwandlung von Meilen in Kilometer

Lernfeld 6: Entwickeln und Bereitstellen von Anwendungssystemen Fallbeispiel Baukredit

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

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

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

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

Lösung Übungszettel 6 Aufgabe 1-4

Welche Informatik-Kenntnisse bringen Sie mit?

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

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

1 Polymorphie (Vielgestaltigkeit)

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Zeiger, Arrays und Strings in C und C++

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

Ostfalia Hochschule für angewandte Wissenschaften Fakultät Elektrotechnik Prof. Dr.-Ing. M. Haas

CGI Programmierung mit Ha. Markus Schwarz

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

5.4 Klassen und Objekte

7 Dateien und Datenströme (Streams)

Programmieren in C Einführung

1 Vom Problem zum Programm

Die Programmiersprache C Eine Einführung

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

C für Java-Programmierer

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

Grundlagen der Programmierung

C++ Einführung. und Datenanalyse mit ROOT. Jörg Marks, Physikalisches Institut, INF 226

Kapitel 3. Mein erstes C-Programm

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Übersicht. C Ein-/Ausgabe und Kontrollanweisungen. I/O-Funktionen aus stdio. printf() Ein-/Ausgabe. Kontrollanweisungen.

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

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

Transkript:

Input, Output, Dateien C-Kurs 2013, 1. Tutorium Armelle Vérité http://wiki.freitagsrunde.org 8. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. 1 / 21

Materialien ISIS-Kurs (Infos, Links): https://www.isis.tu-berlin.de/course/view.php?id=8675 Vortragsfolien: https://docs.freitagsrunde.org/veranstaltungen/ckurs_ 2013/unterlagen/ Übungsaufgaben: http://wiki.freitagsrunde.org/ckurs/übungsaufgaben Buch C von A bis Z (online frei verfügbar): http://openbook.galileocomputing.de/c_von_a_bis_z/ Online: http://www.cplusplus.com/reference/clibrary/cstdio 2 / 21

Inhaltsverzeichnis 1 Ausgabe mit printf 2 Eingabe mit scanf 3 Dateien 4 fprintf, fscanf 3 / 21

Variablen und Adressen int a; Eine Variable deklarieren Irgendwo ist ein Platz alloziert, der groß genug ist, um einen int zu speichern. Das ist die Adresse von a: &a manche Funktionen brauchen als Parameter eine Adresse, und keine variable. (Parameter mit *) 4 / 21

Ausgabe mit printf 1 i n t main ( ) 2 { 3 p r i n t f ( H e l l o World! \ n ) ; 4 5 r e t u r n 0 ; 6 } src/helloworld.c 5 / 21

Ausgabe mit printf 1 i n t main ( ) 2 { 3 p r i n t f ( H e l l o World! \ n ) ; 4 5 r e t u r n 0 ; 6 } src/helloworld.c Signatur int printf (const char * format,...) Parameter: Formatstring format und beliebig viele Parameter jeden Basistyps Rückgabe(success): Anzahl geschriebene Zeichen Rückgabe(error): negativer Wert 5 / 21

Formatstring...Kann sowohl Text als auch Formatzeichen enthalten. src/printfdatatypes.c 1 c o n s t char e i n S t r i n g= I got you, ; 2 i n t e i n I n t =47806; 3 double e i n D o u b l e =12.345; 4 5 p r i n t f ( \n\nyeah, %s %d\n, e i n S t r i n g, e i n I n t ) ; Formatzeichen sind Platzhalter im Formatstring für die Parameter, die danach angegeben werden Formatzeichen dargestellter Datentyp %d Integer %f Float (Fliesskommazahl) %x Hexadezimale Ausgabe %s String 6 / 21

Formatzeichen vollständige syntax %[flags][width][.precision][length]specifier flags verschiedene Flags, wie Vorzeichen, etc width wie breit soll die Ausgabe sein (Anzahl Zeichen).precision Genauigkeit (Datentypabhängig) length Datentypgröße specifier d, f, x, s,... 7 / 21

Formatzeichen vollständige syntax %[flags][width][.precision][length]specifier flags verschiedene Flags, wie Vorzeichen, etc width wie breit soll die Ausgabe sein (Anzahl Zeichen).precision Genauigkeit (Datentypabhängig) length Datentypgröße specifier d, f, x, s,... 1 i n t e i n I n t =42; 2 double eindb =1.2345; 3 src/printfformatting.c 4 p r i n t f ( %10.4d % 10.4d %10.10 d % 15.10 l f \n, e i n I n t, e i n I n t, e i n I n t, eindb ) ; 7 / 21

Inhaltsverzeichnis 1 Ausgabe mit printf 2 Eingabe mit scanf 3 Dateien 4 fprintf, fscanf 8 / 21

Eingabe mit scanf src/scanfdatatypeslsg.c 1 p r i n t f ( Geben s i e e i n e n I n t e g e r e i n : ) ; 2 s c a n f ( %d,& e i n I n t ) ; 9 / 21

Eingabe mit scanf src/scanfdatatypeslsg.c 1 p r i n t f ( Geben s i e e i n e n I n t e g e r e i n : ) ; 2 s c a n f ( %d,& e i n I n t ) ; Signatur int scanf (const char * format,...) Parameter: Formatstring format enthält jetzt Formatzeichen für das, was gelesen werden soll beliebig viele Variablen-Adressen Rückgabe(success): Anzahl gelesenen Werten Rückgabe(error): EOF (vordefinierte Konstante) 9 / 21

Eingabe mit scanf Syntax des Formatstrings %[*][width][modifier]type * : gelesener Wert wird nicht in Variable gespeichert width: Maximale Zeichenanzahl, die eingelesen wird- wichtig für Strings modifier : Datentypgröße type : bekannt aus printf, also d, f, s, etc 10 / 21

Eingabe mit scanf und Textvorgabe 1 i n t stunden ; 2 i n t minuten ; 3 src/scanfuhrzeit.c 4 p r i n t f ( \ n B i t t e U h r z e i t e i n g e b e n im Format hh :mm\n ) ; 5 i n t r e t u r n V a l u e=s c a n f ( %d:%d,& stunden, &minuten ) ; Wenn normaler Text im Formatstring enthalten ist, wird dieser als Vergleich mit der Eingabe benutzt weicht die Eingabe ab, wird abgebrochen ist sie korrekt, werden alle Parameter eingelesen 11 / 21

Inhaltsverzeichnis 1 Ausgabe mit printf 2 Eingabe mit scanf 3 Dateien 4 fprintf, fscanf 12 / 21

Dateien Files öffnen und schliessen öffnen mit fopen schliessen mit fclose Sind nicht nur Bereiche auf der Festplatte Auch Netzwerkschnitstellen o.ä. Aber auch Standard Ein- und Ausgabe (Terminal) 13 / 21

fopen FILE *fp= fopen (" filesopenclose.c", "r"); fclose (fp); fileopenclose.c 14 / 21

fopen FILE *fp= fopen (" filesopenclose.c", "r"); fclose (fp); fileopenclose.c Signatur FILE * fopen (const char * filename, const char * mode) Parameter: Dateiname filename als String Dateimodus mode als String Rückgabe(success): Dateideskriptor Rückgabe(error): NULL (vordefinierte Konstante) 14 / 21

Öffnungsmodi FILE *fp= fopen (" filesopenclose.c", "r"); fclose (fp); fileopenclose.c r : Datei nur zum Lesen öffnen w : Datei zum (Über-)schreiben öffnen existiert sie noch nicht, wird sie angelegt existiert sie, wird der bisherige Inhalt überschrieben a : Datei zum Anhängen öffnen existiert sie noch nicht, wird sie angelegt existiert sie, werden geschriebene Daten am Ende angelegt (append) 15 / 21

Dateideskriptoren Abstraktes Object zur Kommunikation Bereits vom Betriebsystem implementiert (Standardstreams in Linux) stdout: Standard Output, dorthin gibt printf Daten aus stdin : Standard Input, von dort liest scanf Daten stderr : Standard Error, Fehlerausgabe Sehr einfach umzuleiten (piping in der Konsole) $ outputuhrzeit scanfuhrzeit Bitte Uhrzeit eingeben im Format hh: mm 13 Stunden und 52 Minuten $ Piping 16 / 21

fclose FILE *fp= fopen (" filesopenclose.c", "r"); fclose (fp); fileopenclose.c 17 / 21

fclose FILE *fp= fopen (" filesopenclose.c", "r"); fclose (fp); fileopenclose.c Signatur int fclose (FILE * stream); Parameter: Stream stream, der vorher mit fopen geöffnet wurde Rückgabe(success): 0 Rückgabe(error): EOF (vordefinierte Konstante) 17 / 21

Inhaltsverzeichnis 1 Ausgabe mit printf 2 Eingabe mit scanf 3 Dateien 4 fprintf, fscanf 18 / 21

Dateien Input/Output Anstatt den Standard-io zu verwenden, benutzen wir den Stream, den wir mit fopen() erhalten haben, und lesen aus/schreiben in einer Datei mit fscanf/fprintf 1 src/filesinput.c 1 f s c a n f ( fp, %d %127s,& anzahl, b e z e i c h n u n g ) ; 1 f p r i n t f ( fp, Guten Tag. ) ; src/filesoutput.c fscanf int fscanf (FILE * stream, const char * format,...); fprintf int fprintf (FILE * stream, const char * format,...); 1 Wie prinft/scanf, beachte zusätzlich stream Parameter 19 / 21

feof: ist die Datei zu Ende? 1 i f ( f e o f ( fp ) ) { 2 break ; 3 } src/fileskuehlschrank.c 20 / 21

feof: ist die Datei zu Ende? 1 i f ( f e o f ( fp ) ) { 2 break ; 3 } src/fileskuehlschrank.c Signatur int feof (FILE * stream) Parameter: Stream stream aus fopen Rückgabe(eof): 1 (wahr) Rückgabe(nicht eof): 0 (falsch) 20 / 21

und jetzt, u ben 21 / 21