使⽤C++读取⼆进制⽂件(dat格式)使⽤C++读取⼆进制⽂件(dat格式)
最近需要⽤C++读⼆进制⽂件,这个过程中遇到了好多问题,终于经过重重查资料解决了!
int Temp;
ifstream in;
in.open("A.dat",std::ios::binary);
in >> Temp;
in >> Temp;
in >> Temp;
在上⾯这个代码块中,通过单步调试我发现读到的Temp结果都是0,但实际⽂件内的数据并不是零。经过尝试,我把Temp类型修改为char型,代码如下
char Temp;
ifstream in;
in.open("A.dat",std::ios::binary);
in >> Temp;
in >> Temp;
in >> Temp;
然后单步调试,可以发现Temp在按照⽂件内的数字在更新。
按照这个思路,我把int型变量按照(char *)去获取结果,于是有了下⾯的代码
python怎么读取dat文件int temp =0;
unsigned int* ptrTemp32 =&temp;
in >>*(((char*)ptrTemp32)+0);
in >>*(((char*)ptrTemp32)+1);
in >>*(((char*)ptrTemp32)+2);
in >>*(((char*)ptrTemp32)+3);
int temp =0;
unsigned int* ptrTemp32 =&temp;
*(((char*)ptrTemp32)+0)= in.get();
*(((char*)ptrTemp32)+1)= in.get();
*(((char*)ptrTemp32)+2)= in.get();
*(((char*)ptrTemp32)+3)= in.get();
然鹅,开始⼀切都很好,但是最后读着读着结果就变成了全F,⾄今没查出来是什么问题。
后⾯就⼜换了read()去获取⼆进制数据
int temp =0;
这样后⾯的读数过程就很顺利了~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论