gpt4 book ai didi

c++ - fstream 不写入文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:58:27 24 4
gpt4 key购买 nike

<分区>

我一直在开发一个小程序,它将我的 3D 引擎所需的所有图像放入一个文件中,但是由于未知原因,当我尝试使用 fstream 写入文件时,它没有返回任何错误,但仍然没有写入任何内容。

例如,我有一个初始化新文件的简单函数:

void initPAK(fstream& pakfile, image firstImg)
{
PAKheader head;
head.sign[0] = 'P';
head.sign[1] = 'A';
head.sign[2] = 'K';
head.nbdata = 1;
head.index.push_back(sizeof(head.sign)+sizeof(head.nbdata)+sizeof(uint32_t));

if(pakfile.is_open())
{
pakfile.write(head.sign, sizeof(head.sign));
pakfile.write((char*)&head.nbdata, sizeof(head.nbdata));
for(uint32_t n=0; n<head.index.size(); n++)
{
pakfile.write((char*)&head.index[n], sizeof(head.index[n]));
}

pakfile.write((char*)&firstImg.width, sizeof(firstImg.width));
pakfile.write((char*)&firstImg.height, sizeof(firstImg.height));
pakfile.write((char*)&firstImg.channels, sizeof(firstImg.channels));
for(uint32_t n=0; n<firstImg.data.size(); n++)
{
pakfile.write((char*)&firstImg.data[n], sizeof(firstImg.data[n]));
}

}
else
{
cerr << "unable to open" << endl;
}
}

我就是这样使用它的:

    fstream fileop;
fileop.open("bin_file", fstream::in | fstream::out | fstream::trunc | fstream::binary);

unsigned char zdata[] = {
255, 0, 0,
0, 255, 0,
0, 0, 255,
};

image zimg;
zimg.width = 3;
zimg.height = 1;
zimg.channels = 3;
for(int i=0; i < 9; i++)
{
zimg.data.push_back(zdata[i]);
}

initPAK(fileop, zimg);

fileop.close();

但他从未写入或创建文件“bin_file”。我在另一个 stackoverflow 的问题中看到我应该使用 flush() 但我也没有工作。最奇怪的是,这个函数用来工作,直到我将 ofstream 替换为 fstream 我相信。我做错了什么?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com