![]() |
struct in datei speichern hallo, in C will ich ein komplettes struct in eine datei speichern.... ich hab da was mit fwrite gefunden, aber daraus werde ich nicht schlau. weiss da jemand was? danke schonmal |
Soweit ich weiß ist doch ein struct sowas was später in C++ mal ne Klasse wird (also ein komplett eigener Typ), ich hab aber grade gestern abend in nem C/C++-Buch gelesen, dass fwrite() nur Strings, Interger und Floats behandeln kann. Das heißt du müsstest dir ne Funktion schreiben, die alle Variablen des struct z. B. jeweils in ne eigene Zeile speichert, und eine, die sie so wieder einliest. |
c++ weiss ich nix von aber struct ist im prinzip ne ansammlung verschiedener typen in einerm typ. aber darum gehts ja nicht. es geht nur drin, daß ich das eben alles in einem wisch abspeichern kann, das geht auch mit fwrite, weil man da unter anderem ne bestimmte bytelänge angeben kann. nur kommt das irgendwie nicht so hin wie in der hilfe steht. momentan läuftd über ne schleife und fprintf, aber fwrite wäre eben eleganter. |
was ist denn dein konkretes problem ? dann wärs leichter zu helfen;-) mal ganz allgemeiner auszug aus der MSDN: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); ;-9 mfg morbus |
hier ein relevanter auszug aus dem code: [code]struct personaldaten { int satznummer; char name [12]; char vorname [12]; int alter; int postleitzahl; char wohnort [12]; char strasse [20]; int nr; double kontostand; }; //Testdaten struct personaldaten stud[20] = { {1, "Mueller", "Marcus", 21, 61169, "Friedberg", "Kaiserstrasse ", 15, 4300.20}, {2, "Schulze", "Sven", 22, 35510, "Butzbach", "Taunusstrasse ", 5, -111.50}, {3, "Schmidt", "Dennis", 20, 61169, "Friedberg", "Saarstrasse ", 17, 566.70} }; .... .... .... void speichern (int anzahl, struct personaldaten *personaldaten) { FILE* datei; datei = fopen("narf.dat", "a"); fprintf(datei, "%i", anzahl); GENAU HIER MÖCHETE ICH KEINE FPRINTF SCHLEIFE FÜR JEDEN EINZELNEN DATENSATZ, SONDERN DEN KOMPLETTEN SATZ IN EINEM WISCH SPEICHERN: fclose(datei); }[/code] |
ich versteh dein problem nicht ganz. wie wärs mit [code]void speichern (int anzahl, struct personaldaten *personaldaten) { FILE* datei; datei = fopen("narf.dat", "a"); fwrite(personaldaten,sizeof(personaldaten),1,datei); fclose(datei); }[/code] |
hehe problem nicht erkannt aber die lösung geliefert... ich kam mit dem parametern von fwrite nihct zurecht.... kannste vieleicht mal sagen wofür die 1 da steht? |
wie oft du es in die datei reinschreibst ;-) ist nen bisschen unnötig, musste noch nie mehr als 1 mal was in ne datei schreiben ;-) mfg morbus |
ok danke.... aus dem hilfebeispiel hab ich das irgendwie nicht ersehen können |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr. |
Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.