Integer in binärer Form in Datei schreiben
-
Tag zusammen
Habe folgende Frage:
Wie kann ich eine Integervariable in binärer Form in eine Datei schreiben?Hoffe auf baldige Anwort
-
Ganz normal mit fwrite.
-
jetzt hab ich noch ein weiters Problem. Ich benötige nun eine Datei, die 2,9 millionen Integer Werte binär codiert enhält. Habe bis jetzt folgenden Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>void main(void)
{
int randomnumber = 0;
int buffer[1];
FILE *datei;srand((unsigned)time( NULL ));
datei = fopen("zufall", "wb");
if(datei == 0)
{
printf("Datei nicht gefunden");
exit(-1);
}
for(int i=0; i<=2900000; i++)
{
randomnumber = rand();
buffer[1] = randomnumber;
fwrite(buffer, sizeof(int), 1, datei);
buffer[1] = 0;
}
fclose(datei);
}Allerdings wird jetzt 2,9 mio mal die gleiche Zahl in die Datei geschrieben. Könnt ihr mir weiterhelfen?
-
fwrite(&i, sizeof(int), 1, datei);
Gruß
-
Naja i ist die Zählvariable, die will er imho nicht
@cy_bock
Der Zugriff auf Arrays startet mit der 0.buffer[1];
Entspricht also dem 2. Element im Array.
-
Es muss buffer[0] heißen.
Dein Fehler war dass du immer auf die 2.Stelle im Array schreibst, aber die erste Stelle an die Funktion übergibst!Grüße,
Harri