Grundsätzlich versuche ich, binäre Daten einer Datei mit fread() zu lesen und drucken Sie es auf dem Bildschirm mit printf(), jetzt ist das Problem, dass, wenn es ausdruckt, es zeigt es tatsächlich nicht als binäre 1 und 0, sondern druckt Symbole und Sachen, von denen ich nicht weiß, was sie sind. DieseWie binäre Daten einer Datei zu kopieren
ist, wie ich es tue:
#include <stdio.h>
#include <windows.h>
int main(){
size_t sizeForB, sizeForT;
char ForBinary[BUFSIZ], ForText[BUFSIZ];
char RFB [] = "C:\\users\\(Unknown)\\Desktop\\hi.mp4" ; // Step 1
FILE *ReadBFrom = fopen(RFB , "rb");
if(ReadBFrom == NULL){
printf("Following File were Not found: %s", RFB);
return -1;
} else {
printf("Following File were found: %s\n", RFB); // Step 2
while(sizeForB = fread(ForBinary, 1, BUFSIZ, ReadBFrom)){ // Step 1
printf("%s", ForBinary);
}
fclose(ReadBFrom);
}
return 0;
}
würde ich wirklich schätzen, wenn mir jemand helfen könnte aus den tatsächlichen binären Daten einer Datei als binäres (0,1) zu lesen.
Das Öffnen einer Datei im "Binärmodus" bedeutet einfach, dass Sie Rohdaten ohne besondere Behandlung erhalten, wenn Sie davon lesen. Wenn Sie es ausgeben, wird es ausgegeben, was wie Müll aussieht. Wenn Sie möchten, dass es als 0s und 1s ausgegeben wird, müssen Sie etwas Code schreiben, um das zu tun. – kfsone
@Wajid Sie lesen es als binär korrekt. Das Problem besteht darin, dass in C/C++ kein binärer primitiver Datentyp vorhanden ist. Daher wird er normalerweise als Zeichen (8 Bits pro Zeichen) gespeichert. Sie sagen der Laufzeit, diese binären Daten so zu drucken, als ob es eine Zeichenkette wäre, also erhalten Sie die Symbole, weil dies zufällig die Zeichenfolgendarstellung der binären Daten ist, die Sie drucken. Siehe hierzu: [Binär in String umwandeln] (/ questions/2343099/convert-binary-format-string-zu-int-in-c) – Tibrogargan
Wenn Sie eine Arbeit richtig machen wollen, müssen Sie es selbst tun. 'printf' hat keinen Konvertierungsbezeichner, der im Binärformat ausgibt.Sie müssen also eine verschachtelte Schleife schreiben, wobei die äußere Schleife ein Zeichen aus dem Puffer erhält und die innere Schleife das Zeichen konvertiert und als Binärwert ausgibt. – user3386109