Ich versuche, die Ausgabe an den folgenden Code, um herauszufinden:Datei-Handling in C - unerwarteter Ausgang
#include <stdio.h>
int main()
{
FILE *f;
int i = 20;
if ((f = fopen("file.DAT", "wb")) != NULL) {
fwrite(&i, 4, 1, f);
fclose(f);
}
return 0;
}
Auf einem 32-bit
-System, ein paragraph sign
(dezimal ascii
Wert 182
) auf binäre Datei geschrieben.
Frage: Wie bestimmt man, welcher ascii
Wert in Binärdatei geschrieben wird?
Das erste Argument der Funktion fwrite
ist ein Zeiger auf Array, aber Array ist nicht im Code definiert. Wie verfolge ich, welche Bytes in eine Binärdatei geschrieben wurden?
Es sollte einen Raum und drei NUL Bytes (auf den meisten Plattformen Ich bin mir dessen bewusst) schreiben. Kein Absatzzeichen mit dem ASCII-Wert 182. – immibis
'& i' bedeutet ein Zeiger auf' i', da 'i' eine Ganzzahl ist, schreiben Sie richtig 4 Byte Speicher von der Adresse, auf die von' i' zu 'file.DAT' gezeigt wird –
@immibis: nur für einen Wert '0x20', nicht für eine * Dezimalstelle *' 20' :) Die Interpretation von '20' als Zeichen hängt davon ab, mit welcher Software Sie es betrachten. – usr2564301