Akte Input/Output Funktionen in C |
C-Datei Behandlung - Akte Zeiger
|
Ein neues datatype benutzen, das einen Akte Zeiger mit zu den C-Dateien genannt wird. Diese Art wird als AKTE * geschrieben und definiert innerhalb stdio.h. Ein Akte Zeiger genannt worden output_file wird in einer Aussage ist erklärt, wie folgt:
|
|
Function Name |
Operation |
fopen() |
Creates a new file for use
Opens a new existing file for use |
fclose |
Closes a file which has been opened for use |
getc() |
Reads a character from |
putc() |
Writes a character to a file |
fprintf() |
Writes a set of data values to a file |
fscanf() |
Reads a set of data values from a file |
getw() |
Reads a integer from a file |
putw() |
Writes an integer to the file |
fseek() |
Sets the position to a desired point in the file |
ftell() |
Gives the current position in the file |
rewind() |
Sets the position to the begining of the file |
|
Ein Akte Zeigerverwenden öffnend, fopen ()
|
Um Ströme zu öffnen, fopen () wird verwendet. Für öffnung ordnet für Eingang ein, dieser ist häufig am benutztesten. Bevor er ihn zugänglich machen kann, muß dein Programm eine Akte öffnen. Diese Funktion bringt den erforderlichen Akte Zeiger zurück. Die Wert NULL wird zurückgebracht, wenn die Akte nicht aus irgendeinem Grund geöffnet werden kann. Prototyp der fopens ist, wie folgt:
|
FILE *fopen (const char *path, const char *mode);
|
|
fopen einläßt den Weg zur Akte sowie den Modus und die Akte mit zu öffnen. Für das folgende Beispiel nehmen:
|
iFILE *Fp;
Fp = fopen("/home/johndoe/input.dat", "r");
|
|
Für Messwert öffnet dieses die Akte in /home/johndoe/input.dat. Du verwendest normalerweise fopen, wie unten gegeben:
|
if ((output_file = fopen("output_file", "w")) == NULL)
fprintf(stderr, "Cannot open %s\n", "output_file");
|
|
Nehmen fopen zwei Argumente, beide sind Zeichenketten, das erste ist der Name der geöffnet zu werden Akte, die Sekunde ist ein Zugang Buchstabe, der normalerweise einer vom folgenden ist:
- „r“ - Öffnen der Akte für Messwert
- „a“ - Öffnen der Akte für das Hinzufügen
- „W“ - Öffnen der Akte für Schreiben
- „w+“ - für das Schreiben und den Messwert (vorhandene Akte wird überschrieben), öffnen
- „R+“ - für den Messwert und die Aktualisierung öffnen (Akte muß bereits bestehen)
- „a+“ - für das Hinzufügen und das Ablesen öffnen (Akte kann oder kann möglicherweise nicht bestehen)
|
Die folgenden Code fragmentis verwendeten, den Text vom ersten <title> Element zu erhalten:
|
|
Einen Akte Zeiger mit fclose schließen ()
|
Du würdest fclose () benutzen um den Strom zu schließen. Der Prototyp für fclose wird unten gegeben:
|
int fclose( FILE *stream );
|
|
Akte Input/Output:: fgets ()
|
Die Alternativen zu scanf/fscanf ist fgets. Der Prototyp ist, wie folgt:
|
char *fgets(char *s, int size, FILE *stream);
|
|
fgets speichert sie in *s Zeiger und liest innen Größe - Buchstaben 1 vom Strom. Die Zeichenkette wird immer automatisch ungültig-beendet. Wenn sie ein EOF oder eine neue Zeile erreicht, stoppt fgets, in den Buchstaben zu lesen.
|
Akte Input/Output:: sscanf ()
|
Der sscanf Bibliothekanruf ist handlich, eine Zeichenkette für ein Format abzulichten. Der Prototyp ist, wie folgt:
|
int sscanf(const char *str, const char *format, ...);
|
|
sscanf nimmt einen Buchstabe Zeiger anstelle von einem Akte Zeiger und arbeitet ganz wie fscanf. Mit anstelle von scanf/fscanf die Kombination von fgets/sscanf verwendend kannst du vermeiden das „Verdauung“ Problem (oder Wanze, abhängig von, wem du: sprichst)
|
Akte Input/Output:: fprintf ()
|
Auszugeben ist manchmal nützlich auch, zu den unterschiedlichen Strömen.
fprintf () erlaubt uns, die gleiche Sache genau zu tun
Der Prototyp für fprintf ist, wie folgt:
|
int fprintf(FILE *stream, const char *format, ...);
|
|
fprintf läßt einen speziellen Zeiger ein, der einen Akte Zeiger genannt wird, bedeutet durch die AKTE *. Es nimmt dann Argument und eine Formatierung Zeichenkette an und. Der einzige Unterschied zwischen printf und fprintf ist, daß fprintf Ausgang zu einem bestimmten Strom umadressieren kann. Diese Ströme können stderr, stdout oder ein Akte Zeiger sein. Mehr auf den Akte Zeigern, wenn wir erhalten, fopen. Ein Beispiel wird unten gegeben:
|
fprintf(stderr, "ERROR: Cannot malloc enough memory.\n");
|
|
Dieser Ausgang die Fehlermeldung zum Standardfehler.
|
Akte Input/Output:: fscanf ()
|
fscanf () ist im Allgemeinen eine Stromversion des scanf. Der Prototyp für fscanf ist, wie folgt:
|
int fscanf( FILE *stream, const char *format, ...);
|
|
Akte Input/Output:: fflush ()
|
Wenn das Programm zusammenstößt, manchmal wird der Strom nicht geschrieben. Du kannst dies tun, indem Sie fflush () Funktion verwenden. Einmal ist es notwendig, einen Puffer zu seinem Strom stark zu spülen. Der Prototyp für fflush ist, wie folgt:
|
int fflush(FILE *stream);
|
|
Nicht sehr schwierig zu verwenden, den Strom zum fflush spezifizieren.
|
Das Programm, das unterhalb des Anzeigen Gebrauches von eine Akte Betrieben gegeben wird. Das Programm schreibt es und Daten kommen durch die Tastatur herein. Buchstabe durch Buchstaben, Eingang einordnen. Das Ende der Daten wird angezeigt, indem man einen EOFbuchstaben einträgt, der Steuerung-z ist. der Akte Eingang ist an nur diesem Signal geschlossen.
|
#include< stdio.h >
main()
{
file *f1;
printf("Data input output");
f1=fopen(Input,w); /*Open the file Input*/
while((c=getchar())!=EOF) /*get a character from key board*/
putc(c,f1); /*write a character to input*/
fclose(f1); /*close the file input*/
printf("\nData output\n");
f1=fopen(INPUT,r); /*Reopen the file input*/
while((c=getc(f1))!=EOF)
printf("%c",c);
fclose(f1);
}
|
|
|
|
Schlüsselwörter:
Perl arbeitet, c Tutorial, php Funktionen, c Reihe, c Zeit, c Programme, c Beispiele, C-Sprache, c Bibliothek, c DLL, Unix c, c Programm, c Beispiel, Standardc, Reihe Funktionen, die Akte, die, variable Funktionen, Unix Akte, Funktionen Tutorial, Funktionen Beispiele geöffnet ist, die gelesene Akte, Akte schreiben, einfaches c, Probe c, variables c, Funktionen Beispiel
|