将文件读取为C 的二进制数组
Reading a file into a binary array in c++
我有一个文件,其中包含多个JPEG的数据(以及一些垃圾),我需要从此文件中提取二进制文件,过滤垃圾并创建JPEG。我知道jpegs的起始二进制顺序。
char buffer[30];
ifstream fin;
fin.open ("FILENAME.raw", ios::in | ios::binary);
while (!fin.eof())
{
fin.read(buffer,30);
cout<<buffer[2]<<endl;
}
fin.close();
在这里,我试图用二进制打印文件,但是当我运行此代码时,外星字符在屏幕上打印。
我认为问题是" cout&lt;&lt; buffer [2]",它正在将您的二进制信息转换为用户。尝试以前尝试int cast,您也应该使用静态的"未签名char阵列"因为二进制数据可以无符号。
unsigned char buffer[ 30 ];
ifstream fin;
fin.open ("FILENAME.raw", ios::in | ios::binary);
while (!fin.eof())
{
fin.read( (char*)( &buffer[0] ), 30 ) ;
cout << (int)buffer[2] << " ";
}
fin.close();
return 0;
另外,如果您想穿越二进制
您应该仔细检查文件的二进制内容,因为您的代码似乎很好。
相关文章:
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 保存/加载大量短数组到二进制文件
- 从二进制文件中读取整数数组
- 以十为基数的数字到布尔数组,该数组要求二进制/基数为 2 的数字
- 递归二进制搜索与字符串数组
- 二进制数组中最大连续 1 的起始和结束索引,以 C++ 为单位
- 尝试将二进制数组转换为十六进制C++然后打印结果
- 如何缩放二进制数组以保留值
- 将文件读取为C 的二进制数组
- C++ 将二进制数组强制转换为类
- 在C++中添加两个二进制数组
- 构造一个包含二进制数组的十六进制值的字符串
- 如何使用 testBit 函数检查二进制数组中的特定索引位
- 如何将 boost::crc_optimal 与二进制数组(0 和 1 的数组)一起使用
- 如何将二进制数组写入文件
- C++删除堆分配数据的二进制数组-它会全部删除吗?关于删除,我应该知道些什么
- 在二进制数组中查找5个数字
- MongoDB:我如何在c++的BSON中存储二进制数组
- 用一个阈值比较两个二进制数组(近似匹配)
- c++删除二进制数组中的前导零