C语言,我想把一个二进制文件用ascii形式输出。编写了以下的程序,但是输出结果不对。求教
//yunghu.cpp:Definestheentrypointfortheconsoleapplication.////wenben.cpp:Definestheen...
// yunghu.cpp : Defines the entry point for the console application.
//
// wenben.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{FILE *fp,*sp;
char ch,fpfile[10],spfile[10];
printf("Enter the fpfile name:\n");
scanf("%s",fpfile);
printf("Enter the spfile name:\n");
scanf("%s",spfile);
//if((fp=fopen(fpfile,"r"))==NULL)
if((fp=fopen(fpfile,"rb"))==NULL)
{printf("cannot open fpfile\n");
}
if((sp=fopen(spfile,"w"))==NULL)
{printf("cannot open spfile\n");
}
while(!feof(fp)) fputc(fgetc(fp),sp);
fclose(fp);
fclose(sp);
return 0;
} 展开
//
// wenben.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{FILE *fp,*sp;
char ch,fpfile[10],spfile[10];
printf("Enter the fpfile name:\n");
scanf("%s",fpfile);
printf("Enter the spfile name:\n");
scanf("%s",spfile);
//if((fp=fopen(fpfile,"r"))==NULL)
if((fp=fopen(fpfile,"rb"))==NULL)
{printf("cannot open fpfile\n");
}
if((sp=fopen(spfile,"w"))==NULL)
{printf("cannot open spfile\n");
}
while(!feof(fp)) fputc(fgetc(fp),sp);
fclose(fp);
fclose(sp);
return 0;
} 展开
1个回答
展开全部
不可能,格式不是一样的。不是你想象的那种格式。
因为BMP中的数据,并不是靠
--\--+--/--
┏━━━━━━━━━━oOo━(__)━oOo━┓
)
┗━━━━━━━━━━━━━━━━━━┛
┏━━━━┓ ┏━━━━┓
┃┃ ┃ ┃
┗━━━━┛ ┗━━━━┛
而是用二进制表示的,可以用notepad++,或者ue打开看看,符合一定要求的。
而
--\--+--/--
┏━━━━━━━━━━oOo━(__)━oOo━┓
)
┗━━━━━━━━━━━━━━━━━━┛
┏━━━━┓ ┏━━━━┓
┃┃ ┃ ┃
┗━━━━┛ ┗━━━━┛
这些本身就是符号文件。比如 - \ + 这些本身就代表的是char字符型,有专门的ascii与之对应,这些转换为二进制与 BMP图像转换为2进制所代表的意义,是不一样的。
所以不能想你说的那样转化。
因为BMP中的数据,并不是靠
--\--+--/--
┏━━━━━━━━━━oOo━(__)━oOo━┓
)
┗━━━━━━━━━━━━━━━━━━┛
┏━━━━┓ ┏━━━━┓
┃┃ ┃ ┃
┗━━━━┛ ┗━━━━┛
而是用二进制表示的,可以用notepad++,或者ue打开看看,符合一定要求的。
而
--\--+--/--
┏━━━━━━━━━━oOo━(__)━oOo━┓
)
┗━━━━━━━━━━━━━━━━━━┛
┏━━━━┓ ┏━━━━┓
┃┃ ┃ ┃
┗━━━━┛ ┗━━━━┛
这些本身就是符号文件。比如 - \ + 这些本身就代表的是char字符型,有专门的ascii与之对应,这些转换为二进制与 BMP图像转换为2进制所代表的意义,是不一样的。
所以不能想你说的那样转化。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询