Daher bin ich mir nicht ganz sicher, wie ich Fread verwenden soll. Ich habe eine Binärdatei in Little-Endian, die ich in Big-Endian konvertieren muss, und ich weiß nicht, wie ich die Datei lesen soll. Folgendes habe ich bisher:
FILE *in_file=fopen(filename, "rb");
char buffer[4];
while(in_file!=EOF){
fread(buffer, 4, 1, in_file);
//convert to big-endian.
//write to output file.
}
Ich habe noch nichts anderes geschrieben, aber ich bin mir einfach nicht sicher, wie ich Angst dazu bringen kann, sozusagen „Fortschritte“ zu machen. Jede Hilfe wäre dankbar.
Vervollständigen Sie das Programm und führen Sie es aus!
fread
liest an der Stelle weiter, an der es beim letzten Durchlauf der Schleife aufgehört hat. Sie sollten den Rückgabewert von überprüfenfread
.infile
ist wahrscheinlich nicht gleichwertigEOF
.– luser droog
29. März 2013 um 5:23
Zum einen bedeutet „rb“. Read Binary, daher sollte Ihr Array vom Typ int und nicht vom Typ char sein.
– MarcusJ
4. Mai 2015 um 21:26
Eigentlich bin ich anderer Meinung. Das Array sollte aus Zeichen bestehen. Binäre Zeichen bestehen nur aus einem einzelnen Byte, während eine Ganzzahl aus 4 Bytes besteht. In diesem Fall wäre die Verwendung eines char-Arrays eine bessere Darstellung, da ein char ein Byte darstellt.
– Ian Leaman
27. Februar 2016 um 21:07 Uhr