在C中复制一个文件



我试图将文件复制到一个新文件中,但它不起作用,因为输入是5133KB,输出是614字节。。。怎么了?提前谢谢。

#include <stdio.h>
int main(void)
{
    FILE * input    =   fopen("input.wav", "r");
    FILE * output   =   fopen("output.wav", "w");
    char    buffer;
    int     bytesRead = 1;
    while(bytesRead=fread(&buffer,1,1,input))
    {
        fwrite(&buffer,1,1,output);
    }
    fclose(input);
    fclose(output);
    return 0;
}

您可能需要在系统上以二进制模式打开文件。2011年6月,§7.21.5.3:

rb打开二进制文件进行读取
wb截断为零长度或创建用于写入的二进制文件

因此:

FILE * input    =   fopen("input.wav", "rb");
FILE * output   =   fopen("output.wav", "wb");

原因是在某些系统上,某些嵌入的二进制字符可能会导致文本模式处理认为遇到了文件末尾,即使文件中实际上有更多的字节。

相关内容

  • 没有找到相关文章

最新更新