wie liest byte für byte aus einer Datei
Will ich Lesen die ersten 4 bytes aus einem binnary-Datei, die wird ein Lied.wav geben. In einer .wav-Datei die ersten 4 bytes sind die bytes 52-46-49-49 und ich habe Sie zu Lesen, um später prüfen, ob Sie wahr sind.
Die Sache ist die, dass ich einen compile-arror an der fread Linie, die sagt invalid conversion from "unsigned char" to "void"
und initialzing argument 1 of 'size_t fread(void*,size_t,size_t,FILE*)
und ich weiß nicht, was es bedeutet.
Sah ich in einem vorherigen Thema tha dies ist der Weg, dass fread getan werden muss, wenn ich will, zu Lesen, byte für byte. Hat jemand eine Idee, wie lese ich byte für byte und speichert Sie in einem array, das groß sein. Danke.
void checksong(char *argv[]){
FILE *myfile;
int i;
unsigned char k[4];
myfile=fopen(argv[2],"r");
i=0;
for(i=0; i<4; i++){
fread(k[i],1,1,myfile);
}
for(i=0; i<4; i++){
printf("%c\n", k[i]);
}
return ;
}
getc()
char
ist immer ein byte.InformationsquelleAutor Zisis Diamantis | 2013-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein einzelner Fehler:
Bedeutet es
k[i]
ist einunsigned char
, und nicht ein Zeiger. Sollten Sie verwenden&k[i]
oderk+i
.Jedoch, Sie nicht wirklich brauchen, zu Lesen, byte für byte. Sie können Lesen 4 Byte, keine loops beteiligt:
Drucken der zahlen:
Sie bekommen die zahlen. nur drucken Sie Sie mithilfe von %d und nicht %c.
InformationsquelleAutor Elazar
In der Reihenfolge zu Lesen, genau ein byte, und speichern Sie es in
k
im indexi
, müssen Sie die Adresse von element iJedoch, Sie würde lieber Lesen Sie die gesamte 4 bytes in einem Rutsch, wenn Sie interessiert sind, die Ihnen 4. Also keine
for
Schleife auf allen, und nur:Es ist auch eine gute übung, um zu testen, den Rückgabewert
fread
(und I/O-operation, für diese Angelegenheit) können, falls es fehlschlägt.man fread
für weitere Informationen.InformationsquelleAutor rectummelancolique
Können Sie nur
InformationsquelleAutor
brauchen Sie nicht zu verwenden
fread()
Auch diefgetc()
gut funktioniert. Einfache Codierung. Einfach wie das Lesen einer text-Datei.InformationsquelleAutor Laksith