怎么用C++代码把ASCII码转化为二进制文件??
3个回答
展开全部
说法不准确。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;
}
展开全部
#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);
}
#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的修正!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cdyzxy的代码可以解决你的问题,当然代码中有个小问题,fread()和fwrite()函数的参数用法有误,应将第二个参数和第三个参数交换位置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询