FILE *fpa, *fpb; fpa = fopen(filename, "rb");
fpb = fopen("temp.dat", "wb");
if (!fpa || !fpb) return ;
while (!feof(fpa))
{
fprintf(fpb, "%03d", fgetc(fpa));
}
fclose(fpa);
fclose(fpb);能不能帮我看下这段代码为什么能够实现将BMP,JPG,GIF,AVI格式的文件转化为DAT文件 是什么原理
if (!fpa || !fpb) return ;
while (!feof(fpa))
{
int b;
char buf[4];
fgets(buf,4,fpa);
buf[3]=0;
b=atoi(buf);
if(b==-1) break ;
fwrite(&b,1,1,fpb);
fflush(fpb);
}
fclose(fpa);
fclose(fpb); 这个为什么能将上述转化的DAT文件重新转化为原始文件(BMP,JPG,GIF,AVI)
不甚感激!
解决方案 »
- 如何刷新SDI框架非客户区?
- 看看我这么说对吗?
- VC有问题,files can only be opened as one type at a time...
- 那位老大知道能够播放powerpoint文件的控件吗?在vc里面控制。(急,再线等待)
- 郁闷啊!不知道还有前途吗!听听大家的
- 串口出现的问题
- 目录“D:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\MFC\SRC”主要是干什么用的?
- 紧急求救:ActiveX控件(MFC写的).inf文件的写法?????
- Activex嵌入Webbrowser打开有silversight控件的网页不能输入数字和英文
- 如何对BIT进行操作亚
- 请问怎样在formview里插入flash?
- 谁会给CListCtrl控件贴张图啊???
FILE *fpa, *fpb; fpa = fopen(filename, "rb ");
fpb = fopen( "temp.dat ", "wb ");
if (!fpa ¦ ¦ !fpb) return ;
while (!feof(fpa))
{
fprintf(fpb, "%03d ", fgetc(fpa));
}
fclose(fpa);
-----------------〉也就是说把一个byte(0x00-0xFF)变成三个字符"%03d",然后写到DAT文件中,DAT文件 可能就是每3个读的.if (!fpa ¦ ¦ !fpb) return ;
while (!feof(fpa))
{
int b;
char buf[4];
fgets(buf,4,fpa);
buf[3]=0;
b=atoi(buf);
if(b==-1) break ;
fwrite(&b,1,1,fpb);
fflush(fpb);
}
fclose(fpa);
fclose(fpb);
---------------------------->通过atoi把写入的字符变成0x00-0xFF之间的数,然后再保存就行了。