FILE读文件怎么一会儿就出错了?
#include <stdio.h>
#include <sys\stat.h>
void main()
{
struct stat s;
int ret = stat("1.mp3",&s);
int len = s.st_size;
FILE *f = fopen("1.mp3","r");
unsigned char buf[5000];
unsigned int size = 5000;
while(len > 0){
ret = fread(buf,512,SEEK_CUR,f);
len -= 512;
}
fclose(f);
}
只读了几次就出错了.
怎么搞?
[解决办法]
FILE *f = fopen("1.mp3","r");
====================================
mp3这样的文件,最好以"rb"二进制的方式打开,不过不肯定因为这个造成后面读取出错
-----------------------
在linux下,文件都是以字节流对待的.即r和rb是一样的.rb只是为了兼容其它系统.
在windows下,r和rb是不同的.要还成rb
看楼主
#include <sys\stat.h>
应该是在windows下吧.