2016-05-31 5 views
-4

Ich muss eine n Anzahl von Bytes in einer Binärdatei in C schreiben, wie kann ich es schreiben? Alle Bytes müssen 0 sein.Schreibe Byte 0 in eine Binärdatei in C

Ich schreibe ein char, aber ich weiß nicht, ob dies der richtige Weg ist.

int i; 
for(i=0; i < 200; i++){ 
    fwrite(0, sizeof(char), 1, file); 
} 
+3

lesen: http://en.cppreference.com/w/c/io/fwrite –

Antwort

3

Das erste Argument von fwrite muss ein gültiger Zeiger sein.

Sie können fputc verwenden sofort Zeichen (Byte) in eine Datei wie folgt zu schreiben:

int i; 
for(i=0; i < 200; i++){ 
    fputc(0, file); 
} 
1

Sie sollten den Puffer angeben, der die zu schreibenden Daten enthält. In Ihrem Fall können Sie '\ 0' in einer char-Variable speichern und ihre Adresse übergeben.

char c = 0; 
int i; 
for (i = 0; i < 200; i++) 
    fwrite(&c, sizeof c, 1, file); 

Weitere (effizienteren) -Lösung ist ein Puffer von 200 Elementen direkt erstellen:

char buff[200] = {0}; // declare array with 200 '\0' bytes 
fwrite(buff, 1, 200, file);