首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么把一个二进制文件转换为ASCII文件

2013-08-04 
如何把一个二进制文件转换为ASCII文件初学,不知道如何实现谢谢[解决办法]你能把一首 mp3 转换成一段 MTV

如何把一个二进制文件转换为ASCII文件
初学,不知道如何实现

谢谢
[解决办法]
你能把一首 mp3 转换成一段 MTV 么?
不同的东西, 又没有一个规则, 怎么转. Base64 编码可以用能打印的字符来编码二进制.
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

直接用 fread 把二进制文件读到内存里面.
然后对内存里面的数据用循环:
for(int i = 0; i < dataSize; ++i)
   printf(" %02X", data[i]);
就行了.

要写入另外一个文件, printf 改成 fprintf


谢谢各位。

我这里有一个文件时从数据库中导出的二进制文件,里面都是数据,我想用C把它读出来。仅仅读出来可以,如下:
int n;
  char buf[10];
  FILE *sf;
  int i;
  sf=fopen("hrandsh.dump","rb");
  fseek(sf,1,0);
  n=fread(buf,sizeof(char),2,sf);
  for(i=0;i<n;i++)
  {
  printf("%02x",buf[i]);
  }


但是如下两种情况我不知道如何实现:
1、如何实现buf所指的字符串和一个值作比较(比如"2345")
2、如何把这个二进制里的所有数据读出来(数据包括汉字、字母等等任何字符)

谢谢,新人,问题问的肤浅请见谅。



1.比较的话,用strcmp可以比较.
2.如果你想全读出来,

while(!foef(fp))
{
;
}

类似这样的操作就可以了.
另外,要全读的话,char数组要定义大一点.不然就溢出了.


非常感谢

n=fread(buf,sizeof(char),2,sf);

如果buf所指的值用16进制表示是9843,我想把buf和"9843"作比较,改怎么写呢?



没太明白你的意思。
strcmp(buf,“9843“),是不是你想要的。?

热点排行