C/C++ 如何以二进制方式打开文件并以0,1方式读取写入?
答案:5 悬赏:30 手机版
解决时间 2021-03-26 13:05
- 提问者网友:遁入空寂
- 2021-03-25 12:12
C/C++ 如何以二进制方式打开文件并以0,1方式读取写入?
最佳答案
- 五星知识达人网友:白昼之月
- 2021-03-25 13:14
如果是C语言的话,用文件操作fread和fwrite函数。
可以按照字节写入和读出:
FILE *fp;
unsigned char buffer; //字节缓存
fp = fopen("文件名", "wb");//二进制写方式
while(一直读到bmp的末尾)
{
这里将bmp按照字节读入buffer变量中;
fwrite(&buffer, sizeof(unsigned char),1, fp);
}
这样就完成了将任何数据以二进制字节形式写入文件。
读出相反,用fread函数。
C++的话,可以使用流操作,在此不详述。
希望能帮助你。
可以按照字节写入和读出:
FILE *fp;
unsigned char buffer; //字节缓存
fp = fopen("文件名", "wb");//二进制写方式
while(一直读到bmp的末尾)
{
这里将bmp按照字节读入buffer变量中;
fwrite(&buffer, sizeof(unsigned char),1, fp);
}
这样就完成了将任何数据以二进制字节形式写入文件。
读出相反,用fread函数。
C++的话,可以使用流操作,在此不详述。
希望能帮助你。
全部回答
- 1楼网友:洎扰庸人
- 2021-03-25 17:56
这是我制作的图片操作的框架,支持图像的旋转,加密以及简单的颜色操作(负片,灰度,轮廓提取)等,应该够用了。其中有一个编译选项#define BITSET_24 是用来选择处理文件是24位还是32位的。
matrix.h: 提供存储图片信息的动态二维数组类,注意,二维数组的地址用圆括号运算符提取,如:
Array2 a[2][3]; a(2) = *(a + 2);
bitmap.h: 提供处理图片的类及加密器Encrypter
- 2楼网友:一把行者刀
- 2021-03-25 16:42
位运算判定是0是1,数字转字符
字符转数字,移位操作
首先就没那个必要,除非你要人看010101二进制,否则你的需求可能需要修改下追问我这边算法要求,需要这个二进制,暂时没办法改。。。
字符转数字,移位操作
首先就没那个必要,除非你要人看010101二进制,否则你的需求可能需要修改下追问我这边算法要求,需要这个二进制,暂时没办法改。。。
- 3楼网友:猎心人
- 2021-03-25 15:10
必须采用C/C++编程吗,其他的可以吗
- 4楼网友:三千妖杀
- 2021-03-25 14:07
按二进方式打开,不能以文本方式打开;否则,行结束符的转换会影响文件内容;
按二进方式打开,只能以字节为单位进行读取写入,不能以“位”方式读写,否则,
太慢,效率低;
自行操作BMP文件,麻烦有难度,要用API或面向对象方式操作BMP,效率高;
我用的是C++BUILDER,都有现成的BMP控件对象;追问额,主要是以字节读取存储这一块怎么弄?追答你要把书上C读写文件这节看一看,fread,fwrite都可读写字节,
这里不可能系统的给你讲解。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯