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:它們將按順序排列,但版本字節後面會出現無意義的字節。 –