C/C++ 如何以二进制方式打开文件并以0,1方式读取写入? 50

C/C++如何以二进制方式打开文件并以0,1方式读取写入?例如我想把一个bmp格式的图片以二进制打开,得到01000111101010100.。。。这种形式并储存到文本中... C/C++ 如何以二进制方式打开文件并以0,1方式读取写入?例如我想把一个bmp格式的图片以二进制打开,得到01000111101010100.。。。这种形式并储存到文本中,然后再把这些数字二进制写入还原为原来的bmp图片。小弟菜鸟,请教各位高手应如何做?希望给出一个源码并解释一下。 展开
 我来答
efanabe
推荐于2017-05-21 · TA获得超过2008个赞
知道小有建树答主
回答量:708
采纳率:0%
帮助的人:1113万
展开全部
如果是C语言的话,用文件操作fread和fwrite函数。
可以按照字节写入和读出:
FILE *fp;
unsigned char buffer; //字节缓存
fp = fopen("文件名", "wb");//二进制写方式
while(一直读到bmp的末尾)
{
这里将bmp按照字节读入buffer变量中;
fwrite(&buffer, sizeof(unsigned char),1, fp);
}
这样就完成了将任何数据以二进制字节形式写入文件。
读出相反,用fread函数。

C++的话,可以使用流操作,在此不详述。
希望能帮助你。
GodHlpMe
2013-07-28 · TA获得超过8455个赞
知道大有可为答主
回答量:4600
采纳率:46%
帮助的人:958万
展开全部
  1.   按二进方式打开,不能以文本方式打开;否则,行结束符的转换会影响文件内容;

  2.   按二进方式打开,只能以字节为单位进行读取写入,不能以“位”方式读写,否则,

      太慢,效率低;

  3.   自行操作BMP文件,麻烦有难度,要用API或面向对象方式操作BMP,效率高;

我用的是C++BUILDER,都有现成的BMP控件对象;

追问
额,主要是以字节读取存储这一块怎么弄?
追答
你要把书上C读写文件这节看一看,fread,fwrite都可读写字节,
这里不可能系统的给你讲解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lotayou
2013-07-28 · TA获得超过382个赞
知道小有建树答主
回答量:347
采纳率:0%
帮助的人:91.6万
展开全部

这是我制作的图片操作的框架,支持图像的旋转,加密以及简单的颜色操作(负片,灰度,轮廓提取)等,应该够用了。其中有一个编译选项#define BITSET_24 是用来选择处理文件是24位还是32位的。


matrix.h: 提供存储图片信息的动态二维数组类,注意,二维数组的地址用圆括号运算符提取,如:

Array2 a[2][3];   a(2) = *(a + 2);


bitmap.h: 提供处理图片的类及加密器Encrypter

追问
额,我不止要处理图片,其它文件例如文本文档,可执行程序都要这样处理。。。
追答
可以参考我的类中load和save部分的函数。大体思想都是一样的……先打开一个文档并建立指针与之联系,然后读写数据,最后保存文档
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangpaishi
2013-07-28 · TA获得超过570个赞
知道小有建树答主
回答量:932
采纳率:52%
帮助的人:747万
展开全部
位运算判定是0是1,数字转字符

字符转数字,移位操作

首先就没那个必要,除非你要人看010101二进制,否则你的需求可能需要修改下
追问
我这边算法要求,需要这个二进制,暂时没办法改。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-28
展开全部
必须采用C/C++编程吗,其他的可以吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式