• Keine Ergebnisse gefunden

1 Grundlagen derProgrammierung in C

N/A
N/A
Protected

Academic year: 2021

Aktie "1 Grundlagen derProgrammierung in C"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1

Grundlagen der Programmierung in C

File I/O

Wintersemester 2005/2006 G. Zachmann

Clausthal University, Germany zach@in.tu-clausthal.de

G. Zachmann Grundlagen der Programmierung in C - WS 05/06 File I/O, 2

Erinnerung: stdin / stdout / stderr

Jeder Prozeß hat stdin, stdout, stderr

Normalerweise verbunden mit Tastatur bzw. Terminalfenster

Oder durch Redirection verbunden mit Files!

stderr kommt weiterhin im Terminal raus Program Standard Input

(stdin)

Standard Output (stdout)

Standard Error (stderr)

% program parameters < infile > outfile

G. Zachmann Grundlagen der Programmierung in C - WS 05/06 File I/O, 3

Ausgabe auf stdout

Einzelnes Zeichen:

Eine Zeile:

Formatiert:

Befinden sich in der sog. libc (C standard library, glibc);

wird immer automatisch dazugelinkt putchar('x');

char c; ...; putchar(c);

puts("text");

puts( zeiger-auf-string );

printf( "format-string", arg1, arg2, … );

G. Zachmann Grundlagen der Programmierung in C - WS 05/06 File I/O, 4

Der Format-String

Normale Zeichen und mit % eingeleitete Formatierungsanweisung

Korrespondenz zwischen %-Anweisung und Argumenten:

Häufige %-Formatangaben:

printf( "Blub %· Bla %· Blubber …", arg1, arg2, … );

%d int

%u unsigned int

%f float oder double

%c char

%s string

%x Hexadezimal-Zahl

%-Angabe Formatierung

G. Zachmann Grundlagen der Programmierung in C - WS 05/06 File I/O, 7

New-line

Codiert durch spezielles Zeichen: \n

Beispiele:

printf("Bla %d\n", x );

printf("blub %f\n"

"blubber %f\n", f1, f2 );

G. Zachmann Grundlagen der Programmierung in C - WS 05/06 File I/O, 8

Lesen von stdin

Einzelnes Zeichen

Ganze Zeile

Formatiert

Formatstring (fast) wie bei printf

Achtung: am Schluß niemals \n lesen wollen!

char c; ...; c = getchar();

gets( zeiger-auf-string );

scanf( "format-string", arg1, arg2, … );

(2)

2

G. Zachmann Grundlagen der Programmierung in C - WS 05/06 File I/O, 9

Beispiele zu scanf

3 Floats einlesen:

Space im Formatstring matcht beliebig viele Whitespaces!

Verwendung:

Von Tastatur einlesen:

Mit I/O-Redirection aus File lesen:

printf("Geben Sie den Vektor ein: ");

float v1, v2, v3;

scanf( "%f %f %f", &v1, &v2, &v3 );

% program

Geben Sie den Vektor ein: □

% program < vector.txt Geben Sie den Vektor ein:

%

G. Zachmann Grundlagen der Programmierung in C - WS 05/06 File I/O, 10

Interaktives Beispiel zu printf / scanf

…

G. Zachmann Grundlagen der Programmierung in C - WS 05/06 File I/O, 11

Werte lesen bis Input leer:

Man-Page: scanf liefert EOF falls kein Input mehr da

Siehe Man-Page für weitere Fälle!

int i;

int success = scanf("%d", &i );

while ( success == 1 && success != EOF ) {

// do something ...

success = scanf("%d", &i );

}

Sorgt dafür, daß die gelesene Zeichenkette als Int interpretiert wird.

Referenzen

ÄHNLICHE DOKUMENTE

Zachmann Grundlagen der Programmierung in C - WS 05/06 Arrays und Strings, Teil 1 2G. Das

Zachmann Grundlagen der Programmierung in C - WS 05/06 Zusammengesetzte Typen, 3. Das

Zachmann Grundlagen der Programmierung in C - WS 05/06 Zusammengesetzte Typen, 7. Das

Zachmann Grundlagen der Programmierung in C - WS 05/06 Zusammengesetzte Typen, 3. Das

Parameter vertikal ausrichten, falls nicht auf eine Zeile passend Rückgabetyp auf eigene Zeile,. falls dieser

ein Speicherblock ist zu genau einem Objekt (z.B. ein Double) zugeordnet, dieser Block hat genau einen Typ, und es gibt keine Möglichkeit im Programm, diesen Speicherblock als

ein Speicherblock ist zu genau einem Objekt (z.B. ein Double) zugeordnet, dieser Block hat genau einen Typ, und es gibt keine Möglichkeit im Programm, diesen Speicherblock als

 Sprache (Interpreter / Virtual Machine) erkennt, wenn Objekt vom Programm nicht mehr zugreifbar ist (kein Zeiger führt mehr darauf).  Garbage-Collector läuft im Hintergrund