int main() {
FILE* pFile;
errno_t err;
float* buffer[m];
int all_size = a * b * m;//a*b是一张切片的尺寸,m是切片的数量
float* src = new float[all_size * sizeof(float)];
if ((err = fopen_s(&pFile, "D:/data/XXXXXXX.raw", "rb")) != 0)
{
cout << "读取文件失败" << endl;
}
else
{
fread(src, sizeof(float), all_size, pFile);
}
for (int i = 0; i < m; i++)
{
FILE* wFile;
float* subdst = new float[a * b * sizeof(float)];
int per_size = a * b;
memcpy(subdst, src + i * per_size, per_size * sizeof(float));
string path = "D:/data/XXXXXX";
path.append(to_string(i)+".raw");//编号
const char* pathh = path.c_str();//保存路径
fopen_s(&wFile,pathh, "wb");
fwrite(subdst, a * b * sizeof(float), 1, wFile);
delete[] subdst;
fclose(wFile);
}
}
vs c++实现raw数据切成多张 float数据
于 2022-10-21 10:59:22 首次发布