我有一个dat格式的文件,其按照int16的格式存储着数据。而且是一个包含2048800400的数组。第一个任务,便是从中取出数据,并reshape想要的形状。
首先,先要能从dat文件中取出一个int16数。
#include <iostream>
#include <fstream>
//#include <opencv2/opencv.hpp>
using namespace std;
int main(){
std::string data_name="RAW-2048-001-400-002-400-1.dat";
std::ifstream file(data_name,ios::binary);
if (!file.good())
std::cerr << "文件无法打开,请确定文件是否可用!" << std::endl;
size_t size = 0;
file.seekg(0, file.end); // 将读指针从文件末尾开始移动0个字节
size = file.tellg(); // 返回读指针的位置,此时读指针的位置就是文件的字节数
file.seekg(0, file.beg); // 将读指针从文件开头开始移动0个字节
int16_t data;
file.read((char*)&data,sizeof(data));
file.close();
cout<<data<<endl;
return 0;
}