永发信息网

我用fopen打开了一个MP3文件,再使用fread,fgetc获取字符,都在读到1AH前一个字节的时候判断结束了。

答案:1  悬赏:10  手机版
解决时间 2021-03-07 17:33
  • 提问者网友:不爱我么
  • 2021-03-06 20:34
我用fopen打开了一个MP3文件,再使用fread,fgetc获取字符,都在读到1AH前一个字节的时候判断结束了。
最佳答案
  • 五星知识达人网友:猎心人
  • 2021-03-06 20:48
这种东西要用二进制读写 不能用字符

这些东西里 \0很正常

我写过二进制复制文件 不限格式 文件

你可以参考 记住不能再用\0判断 要用 fp指针返回为空判断

测试 发现 exe文件也可以复制 能正常运行

#include
#include
int main(void)
{
int nLen;
FILE *fp,*fp1;
fp=fopen("123.exe","rb");

fseek(fp,0L,SEEK_END);
nLen = ftell(fp);
//这里用int数组也可以哦 注意用int时把下面三处的nLen+1的+1去掉
void *buffer = (void*)malloc(nLen);

if (buffer==NULL)
{
printf("memory error!\n");
}
fseek(fp,0,SEEK_SET);
fread(buffer,nLen,1,fp);
fclose(fp);
fp1=fopen("456.exe","wb");
fwrite(buffer,1,nLen,fp1);

fclose(fp1);
free(buffer);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯