小编lak*_*tha的帖子

从二进制文件中逐个读取字节

这是我的问题,我想打开一个.jpg文件,并将每个字节写为以逗号分隔的十进制数字(0-255)到另一个.txt文件中.现在它应该能够使用该txt文件再次构建.jpf文件.这就是我试图这样做的方式.

#include<iostream>
#include<fstream>
using namespace std;
int main()
{
long x;
char *s;

ifstream ifs("image.jpg",ios::binary);
ifs.seekg(0,ios::end);
x=ifs.tellg();
ifs.seekg(0,ios::beg);

s=new char[x];
ifs.read(s,x);
ifs.close();

ofstream is("image.txt");

for(int i=0;i<x;i++){
is<<(unsigned int)s[i]<<",";
}
Run Code Online (Sandbox Code Playgroud)

现在这个程序创建了带有十进制数字的image.txt,如下所示,4294967295,4294967256,4294967295,4294967264,0,16,74,70,73,70,0,1,......这里有些数字似乎是4字节long,s [i]只引用一个字节,那么(int)s [i]如何返回大于255的数字.请有人帮我这个....谢谢..

c++ binary file-io byte

1
推荐指数
1
解决办法
8471
查看次数

标签 统计

binary ×1

byte ×1

c++ ×1

file-io ×1