Ein- und Ausgabe-Funktionen

stdio.h

Diese Bibliothek enthält alle Funktionen, die für die Ein- und Ausgabe zuständig sind. Fast alle bedienen sich dabei sogenannter Streams. Streams sind allgemein definiert als ein aktiviertes lineares Interface zwischen Programm und Hardware. Häufigste Anwendung ist dabei eine Datei, weshalb der Typ auch FILE* heisst. Die folgenden Funktionen sind unter anderem speziell für Dateien gemacht:

void clearer(FILE* stream)Flags zurücksetzen
int fclose(FILE* stream)Stream schliessen
int feof(FILE* stream)gibt 0 zurück, wenn Dateiende noch nicht erreicht
int ferror(FILE* stream)gibt 0 zurück, wenn alles in Ordnung ist
int fflush(FILE* stream)Puffer leeren
int fgetc(FILE* stream)ein Zeichen lesen
int fgetpos(FILE* stream, fpos_t* pos)pos enthält die Position im Stream
char* fgets(char* str, int i, FILE* stream)Liest String bis \n aber maximal i-1 Zeichen
FILE* fopen(const char* Name, const char* modus)Öffnet einen Stream im angegebenen Modus
int fprintf(FILE* stream, const char* format, ...)In einen Stream werden formtierte Daten ausgegeben
int fputc(int zeichen, FILE* stream)Ein Zeichen schreiben
int fputs(const char* str, FILE* stream)String schreiben
size_t fread(void* Puffer, size_t Grösse, size_t Anz, FILE* stream)liest maximal 64 KB in den Puffer
FILE* freopen(const char* Name, const char* modus, FILE* stream)ordnet Stream einer anderen Datei zu
int fscanf(FILE* stream, const char* format, ...)liest formatierte Daten ein
int fsetpos(FILE* stream, const fpos_t* pos)Setzt den Dateipointer auf eine absolute Position
long ftell(FILE* stream)gibt den Positionspointer zurück
size_t fwrite(const void* Puffer, size_t Grösse, size_t Anz, FILE* stream)schreibt maximal 64 KB in den Puffer
int remove(const char* Datei)Datei wird gelöscht
int rename(const char* Datei1, const char* Datei2)Umbenennen der Datei
void rewind(FILE* stream)Zurücksetzen der Flags und zurück zum Dateianfang
FILE* tmpfile(void)Temporäre Datei erstellen
char* tmpnam(char* str)Benannte temporäre Datei erstellen

Die folgenden Funktionen sind speziell für die Eingabe über Tastatur (stdin) und die Ausgabe über Bildschirm (stdout) gedacht:

int getc(FILE* stream)liest ein Zeichen
int getchar(void)liest ein Zeichen aus stdin
char* gets(char* str)liest eine Zeichenkette aus stdin
int putc(int asc, FILE* stream)gibt ein Zeichen aus
int putchar(int asc)gibt ein Zeichen auf stdout aus
int puts(const char* str)gibt den String auf stdout aus
int scanf(const char* str, ...)Liest einen formatierten String von stdin

Die folgenden Funktionen sind zuständig für allgemeine Puffer- und Stream-Anweisungen, sie werden normalerweise erst bei manueller Dateiansteuerung benutzt.

void setbuf(FILE* stream, char* Puffer)Weist dem stream einen Puffer zu
int setvbuf(FILE* stream, char* modus, int, size_t Grösse)Weist dem stream die Art des Puffers zu
int sscanf(const char* Puffer, const char* str, ...)formatiertes Herauslesen aus dem Puffer
int ungetc(int asc, FILE* stream)Fehlerhalber gelesenes Zeichen wird wieder zurückgeschrieben zu

Vordefinierte Konstanten

Viele Funktionen der Standardbibliotheken bieten eine Fülle an Optionen an. Dafür müssen jedoch jeweils die korrekten Werte übergeben werden. Hier sind die wichtigsten aufgelistet:

fopen:

a              Daten anhängen. Falls Datei nicht existiert, wird neue Datei erstellt.
a+             Gleich wie a, aber mit Lesezugriff
r              Nur Lesen. Fehler, wenn Datei nicht geöffnet werden kann.
r+             Gleich wie r, nur mit Schreibzugriff
w              Nur Schreiben. Wenn Datei bereits existent, wird sie überschrieben!!
w+             Gleich wie w, nur mit Lesezugriff.

fseek:

SEEK_CUR       aktuelle Position
SEEK_END       Dateiende
SEEK_SET       Dateianfang

setbuf:

BUFSIZ                 512     Normale Puffergrösse

setvbuf:

_IOFBF         volle Pufferung bis Zwischenspeicher voll
_IOLBF         zwilenweise Pufferung
_IONBF         keine Pufferung