怎么用C++代码把ASCII码转化为二进制文件??

 我来答
flower
2015-10-26 · 爱生活,爱分享
flower
采纳数:94 获赞数:262

向TA提问 私信TA
展开全部

说法不准确。ASCII只是一种编码格式,依然是二进制。你只不过想换一种编码格式。

给你一个参考代码:

#include <stdio.h>
//
void chartobin(char a){
    unsigned mask = 1u << 7;
    for (; mask; mask >>= 1){
        printf("%d", a&mask?1:0);
    }
    printf("\n");
}
//
int main(int argc, char *argv[])
{

    chartobin('a');
    chartobin('b');
    chartobin('A');
    //
    return 0;
}
cdyzxy
2013-01-25 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3740万
展开全部
#include "stdio.h"
#include "string.h"
main()
{
FILE *fp,*tp;
char fnm[]={ "InputFile.txt" };
char fnmt[]={ "OutputFile.bin" };
char buffer;
if ( fp=fopen(fnm,"r") )
{
if ( tp=fopen(fnmt,"wb+") )
{
fread(&buffer,1,sizeof(char),fp);
while ( !feof(fp) )
{
fwrite(&buffer,1,sizeof(char),tp);
fread(&buffer,1,sizeof(char),fp);
}
fclose(tp);
}
else printf("不能建立输出文件'%s'.\n",fnmt);
fclose(fp);
}
else printf("不能打开文本文件'%s'.\n",fnm);
}
追问
我是意思是将文本1(属于ASCII文件)读取出来并存储在文本二中(二进制文件),该怎么实现??
追答
没错这个程序就是将名为InputFile.txt的文件读入,并逐一顺次存储到OutputFile.bin文件中.
程序中fread(&buffer,1,sizeof(char),fp);应写成fread(&buffer,sizeof(char),1,fp);
fwrite(&buffer,1,sizeof(char),tp);应写成fwrite(&buffer,sizeof(char),1,tp);

谢谢xoaxa的修正!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
2013-01-25 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3480万
展开全部
cdyzxy的代码可以解决你的问题,当然代码中有个小问题,fread()和fwrite()函数的参数用法有误,应将第二个参数和第三个参数交换位置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式