www.lydf.net > C/C++ 如何以二进制方式打开文件并以0,1方式读取写...

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

1. 按二进方式打开,不能以文本方式打开;否则,行结束符的转换会影响文件内容;2. 按二进方式打开,只能以字节为单位进行读取写入,不能以“位”方式读写,否则, 太慢,效率低;3. 自行操作BMP文件,麻烦有难度,要用API或面向对象方式操作BMP,效率高;我用的是C++BUILDER,都有现成的BMP控件对象;

int read(FILE *fp, int ** buff) { int len = 0; char c; while(fread(&c,1,1,fp)==1) { int i; *buff = (int*)realloc(*buff, (len+8)*sizeof(int)); for(i=0;i<8;i++) { unsigned char t = 1<<i; (*buff)[len+i] = c&t?1:0; } len += 8; } return len; } void write(FILE * fp, int * buff, int

给你思路:以二进制方式读取文件,以char或unsigned char类型读取每一字节,对0和1的处理,无非就是按位与、按位或、按位非和按位异或的操作,之后再行写入即可.利用的read()等函数.Windows下我倾向用API而不是C库函数,因为可以使用内存映射文件.

#include <fstream>写二进制文件应该使用ofstream类,文件的打开模式一定要是 binary,如果传入的不是 binary, 文件将以ASCII方式打开.下面是示例代码,用于写入文件.std::ofstream fout("a.dat", std::ios::binary);int nNum = 20;std::string

ifstream input(filename, ios::in | ios::binary);

要读取文件必须包含<fstream>头文件,这里包含了C++读写文件的方法. 可以使用fstream类,这个类可以对文件进行读写操作. 1、打开文件. 打开文件可以有两种方式,第一种可以使用fstream类的构造函数. fstream file("test.dat",ios_

#include<iostream>#include<fstream> using namespace std; int main() { ofstream otxt("d:\\txt"); ofstream obin("d:\\bin", ios::binary); unsigned int c; for(c=0; c<256; c++) { otxt<<(char)c; obin<<(char)c; if((c + 1) % 10 == 0) { /* 写文件有文本格式

用fileinputstream读取文件,然后bufferedinputstream来装流,最后用read方法读出字节数组 用<<位移运算组合轻松完成你要的变量读取,short2字节,int4字节,long 8字节,相信你应该知道怎么做了,记得文件中的存储的字节是高低位反向的

字符数组,每一个值都是一个字符变量,你可以再定义一个同样长度的整型数组,对每一个字符进行强制转换,如:intBuf = new in

从C++实质的操作上说:1、Windows平台下 如果以“文本”方式打开文件,当读取文件的时候,系统会将所有的"/r/n"转换成"/n";当写入文件的时候,系统会将"/n"转换成"/r/n"写入. 如果以"二进制"方式打开文件,则读/写都不会进行这样的转换. 2、在Unix/Linux平台下“文本”与“二进制”模式没有区别.是否如此,请自已测试.建议使用WinHex等二进制工具辅进行目标文件的观察与改动,然后在C++编程中对比查看效果.

网站地图

All rights reserved Powered by www.lydf.net

copyright ©right 2010-2021。
www.lydf.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com