Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
Beispiel für <strong>die</strong> Arbeit mit b<strong>in</strong>ären Dateien<br />
Das Programm gibt <strong>die</strong> Datensätze der Datei Test.b<strong>in</strong> aus (Falls vorhanden), <strong>und</strong> lässt anschliessend<br />
den Benutzer weitere Datensätze an <strong>die</strong> Datei anhängen.<br />
#<strong>in</strong>clude <br />
#<strong>in</strong>clude <br />
typedef struct DataStruct {<br />
<strong>in</strong>t Value;<br />
char Str<strong>in</strong>g[40];<br />
float FValue;<br />
} DataStruct;<br />
<strong>in</strong>t ma<strong>in</strong>(<strong>in</strong>t argc, char *argv[])<br />
{<br />
char *FileName = "test.b<strong>in</strong>";<br />
FILE *File;<br />
/* B<strong>in</strong>aere Datei zum Lesen oeffnen */<br />
File = fopen(FileName, "rb");<br />
if (File != NULL) {<br />
<strong>in</strong>t i = 0;<br />
/* Zwischenspeicher fuer <strong>die</strong> Datensaetze */<br />
DataStruct Input;<br />
/* Alle Datensaetze lesen <strong>und</strong> ausgeben */<br />
while (!feof(File)) {<br />
if (fread(&Input, sizeof(DataStruct), 1, File) == 1) {<br />
pr<strong>in</strong>tf("\nEntry %d\n", i++);<br />
pr<strong>in</strong>tf(" Value = %d\n", Input.Value);<br />
pr<strong>in</strong>tf(" Str<strong>in</strong>g = %s\n", Input.Str<strong>in</strong>g);<br />
pr<strong>in</strong>tf(" Float = %f\n", Input.FValue);<br />
}<br />
}<br />
/* Datei wieder schliessen */<br />
fclose(File);<br />
}<br />
/* B<strong>in</strong>aere Datei zum Anhaengen (Schreiben) oeffnen */<br />
File = fopen(FileName, "a+b");<br />
if (File != NULL) {<br />
/* Datensaetze e<strong>in</strong>geben lassen <strong>und</strong> <strong>in</strong> Datei schreiben */<br />
DataStruct Output;<br />
pr<strong>in</strong>tf("Enter a <strong>in</strong>teger Value: ");<br />
scanf("%d", &(Output.Value));<br />
pr<strong>in</strong>tf("Enter a str<strong>in</strong>g: ");<br />
scanf("%s", &(Output.Str<strong>in</strong>g));<br />
pr<strong>in</strong>tf("Enter a float Value: ");<br />
scanf("%f", &(Output.FValue));<br />
if (fwrite(&Output, sizeof(DataStruct), 1, File) != 1) {<br />
pr<strong>in</strong>tf("Sorry, could not write the datas");<br />
}<br />
/* Datei wieder schliessen */<br />
fclose(File);<br />
} else {<br />
pr<strong>in</strong>tf("Sorry, could not open '%s' for append\n", FileName);<br />
pr<strong>in</strong>tf("Errorcode was %d\n", errno);<br />
perror("Errormessage: ");<br />
}<br />
system("PAUSE");<br />
return 0;<br />
}<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 86/147