1
对于我正在开发的小文件格式,我需要将519字节的标头输出到文件。我对整个流概念有点新鲜。尽管我有一些阅读Truevision Targa文件头的经验。但输出是我很熟悉的东西。C++写入带有数据流的二进制文件
所以基本上,这是我的问题。
我打开ofstream的实例,我需要输出头,像这样:
typedef struct header {
char version; // offset 0, length 1
short int width; // offset 1, length 2
short int height; // offset 3, length 2
short int pathlen; // offset 5, length 2
char desc[512]; // offset 7, length 512
} fileHeader;
现在我需要得到这一切在第一519个字节的文件,内容的其余部分变化,我将如何去复制这个头到我的文件?
我最好想使用ofstream类来做这件事,但我对原始C库也很好。我现在已经呆了2个小时了,而且我还没有到任何地方,并且尝试在Google上搜索也没有多大帮助。
以为蒙上如果结构的格式不正确可能会导致麻烦。 – Pubby
虽然我很欣赏你的答案,但我想解释一下这是如何工作的。我怎样才能确保数据以正确的顺序写入(版本第一,宽度等)。另外,不知何故,这个功能并不适合我。一些感觉。 –
你(都)是对的,我忘了填充。你的结构在RAM中不会是519字节,只是在磁盘上。 (在Windows上它将是520字节)固定。 @ user1019020:它们将按顺序排列,但版本字节后面会出现无意义的字节。 –