c++读取dat文件,matlab中实现代码fopen(SSS,“r”,‘ieee-be’)

问题
我要把matlab代码转为c++
有一个dat文件,用matlab读取的代码为
fid=fopen(file,‘r’,‘ieee-be’);
c=fread(fid,‘float’);
c=reshape(c,H,W);

如何才可以用c++读取呢?
我试了方法:

char temp[sizeof(float)];
file.read(temp,sizeof(float));

读出来的数不对 挠头

====== 更新!!!我搞出来了!!!!====
话不多说直接贴代码
std::string file_path;
cin >> file_path;

float tem0;
char Temp[sizeof(float)]
ifstream in;
in.open(file_path.c_str(),std::ios::binary) //用二进制读取

for(int i=0;i<HW;i++)//HW 就是这个文件里一共有多少个数
{
in.read(Temp,4);
std::swap(Temp[0],Temp[3]);
std::swap(Temp[0],Temp[3]); //这里就是交换字节顺序 matlab里面的ieee 读取是大端序,得改成小端序
temp = to_float(Temp); // 这里是我自己写的函数,把字符串转为float
DEM(H,M) = temp;
}

我写的比较简单,大概就是这意思,有什么不懂的可以评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值