私はmp3ファイルから別のファイルにデータをコピーしようとしています。mp3ファイルのデータを別のファイルにコピーします。 C
しかし、私がファイルから取得するすべてのチャーターは '-1' ASCCIです。
私はscanFileを "rb"モードで開きます。
これはコードです:
// scannedFile = music.mp3, lastByte = 1000, firstByte = 3
char* data = calloc(lastByte - firstByte + 2, sizeof(char));
for (i = 0; i <= lastByte - firstByte; i++)
{
c = fgetc(scannedFile);
if (c == 0) // if the char is 0 (END OF STRING) change it for another charter.
c = 1;
data[i] = c;
}
mp3ファイルはバイナリで、ASCII以外の文字が含まれていてnullで終了しません。あなたのコードはテキストファイルを期待しており、バイナリファイルが破損します。 – antlersoft
@antlersoftねえ、「rb」モードで「scannedFILE」を開きます。 それも動作していません.. –
MP3ファイルは文字列ではないので、0バイトは完全に無関係で、その終わりをマークしません。 – immibis