Binäres Kopieren Algorithmus
-
Hallo,
Wieso haut dieser Code nicht hin: (Es werden nur 24-Byte von 4MByte kopiert)
#include <stdio.h> #include <stdlib.h> #define PATH_SRC "C:\\Users\\Steven\\Desktop\\original.mp3" #define PATH_DST "C:\\Users\\Steven\\Desktop\\copied.mp3" int main(void) { FILE *file_src = NULL, *file_dst = NULL; char byte; //byte-Weise Datei auslesen und kopieren if((file_src = fopen(PATH_SRC, "r")) == NULL) { printf("%s konnte nicht geoffnet werden\n", PATH_SRC); return EXIT_FAILURE; } if((file_dst = fopen(PATH_DST, "w")) == NULL) { printf("%s konnte nicht geoffnet werden\n", PATH_DST); return EXIT_FAILURE; } while((byte = fgetc(file_src)) != EOF) { fputc(byte, file_dst); } fclose(file_src); fclose(file_dst); return EXIT_SUCCESS; }
-
MP3s sind Binärdateien, also solltest du die Dateien mit "rb" bzw. "wb" öffnen. Ich persönlich würde zum Lesen/Schreiben in dem Fall auch eher fread/fwrite nutzen.
-
Aber wieso geht es mit dem Modus "r" & "w" sowie mit fgetc() und fputc() nicht. Was ist der Hintergrund? Was ist der technische background?
viele grüße
-
Das Zeichen '\x1A' wird unter Windows bei Textdateien als Dateiende angesehen.