06.10.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!