Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<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 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 86/147