永发信息网

请c语言高手给写一个函数,实现以二进制位的方式写文本文件。要用到fwrite函数,不能用fprinf,fputc之类

答案:1  悬赏:20  手机版
解决时间 2021-03-22 21:28
  • 提问者网友:嘚啵嘚啵
  • 2021-03-22 06:28
我会用C语言写文本文件,但是对于二进制方式的读写还是不清楚。我想要这么个函数,其参数为
一 int[8]的数组,其取值范围只能是0或者1,
二 文件名
其效果是新建并写一个文件,用记事本打开后可以看到上面int[8]对应的ASCII码的字符。
比如说,输入是0010 0100,D:\1.txt
则运行结束后我用记事本打开此文本文件,看到里面有个$字符。
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-03-22 08:03
#include<iostream>
#include<string>
using namespace std;
void writechar(int iBit[],char filename[])
{
FILE *out ;
char s[9]={0}, t=0;
int m=0, i=0, n=0;
out = fopen(filename,"w") ;
for(i=0 ; i<8; i++) 
{
//s[i]=(char)iBit[i];
t |= (char)iBit[i]<<i;
}
//这是输出字符$的写法,上面循环中s的赋值不需要
fwrite(&t,sizeof(char),1,out);
//这是每个字节显示一个0/1的做法
//fprintf(out,"%s\n",s);
//这是真正的二进制写入文件方法,估计也不是你要的
//for(i=0;i<8;i++)
// fprintf(out,"%d",iBit[i]);
fclose(out) ;
}
int main()
{
int iBit[8]={0,0,1,0,0,1,0,0};
char filename[] = "d:\\1.txt";
writechar(iBit,filename);
    return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯