fwrite und int
-
Hi
wie kann man mit fwrite int-werte in dateien schreiben bzw. kann man int werte in Dateien überschreiben?
-
int i=5;
fwrite(&i,sizeof int,file);
-
Ich möchte jetzt Zufallszahlen generieren und diese dann in eine Datei schreiben, wie kann ich das machen?
Ich hab es schon so versucht, das ich die Zufalls zahlen in eine normale int variable setze und dann mit fwrite versucht diese in eine Datei zu schreiben. Ich bekomme aber immer einen Speicherzugriffsfehler.
-
Der oben genannte Fehler hat sich schon erledigt. Allerdings schreibt er mir keine Zahlen sondern irgendwelche Zeichen in die datei
-
Die werden binär abgespeichert, dh du mußt sie mit fread wieder lesen ...
-
void main(void)
{
FILE *dz_zahlen;long zahlen,i;
dz_zahlen=fopen("zahlen.dat", "w");
for(i=0;i<10;i++)
{
srand(time(NULL));
zahlen=rand();
printf("%d\n", zahlen);
system("pause");
fwrite(&zahlen,sizeof(zahlen),1,dz_zahlen);
fread(&zahlen,sizeof(zahlen),1,dz_zahlen);
printf("%d\n", zahlen);*/}
berechnen();
system("pause");
fclose(dz_zahlen);so soeht mein Quellcode momentan aus, trotzdem krieg ich beim auslesen nur nen absolut unpassenden negativen Wert zurück, woliegt das problem?
-
Nach dem Aufruf von fwrite steht der Dateizeiger auf der nächstmöglichen Dateiposition. Wenn du dann also fread aufrufst, liest du nicht das ein was du gerade geschrieben hast, sondern irgendwas ... konkret sogar irgendwelchen zufälligen Müll, da du dann versuchst über EOF hinaus zu lesen und das nicht abfängst.
-
Außerdem hast du die Datei nur zum Schreiben geöffnet.