c语言结构体写入dat文件中,.dat在C中的结构化文件处理(手册?)
假設你的數據項由一個固定大小的一個C結構基本Typedef的是這樣的描述:
typedef struct
{
... // fill in the missing details
} MyDataItem;
并且您的數據文件包含這些MyDataItem的...
使用fopen(FileName, "wb")創建一個空文件用于寫MyDataItem的目的(如果在這個調用之前有這個名字的文件,它將被覆蓋并且它的所有數據都將丟失)。
使用fopen(FileName, "rb")打開現有文件以便只讀。
使用fopen(FileName, "rb+")打開現有的文件進行讀取或寫入/更新。
使用fopen(FileName, "wb+")創建一個新的文件用于寫入/更新或讀取(如果在此調用之前有這個名稱的文件將被覆蓋,并且所有數據都將丟失)。
使用fopen(FileName, "ab")可以打開現有文件或創建一個新文件以在其末尾附加數據。
使用fopen(FileName, "ab+")打開現有文件或創建一個新文件,用于在其末尾附加數據并讀取/寫入/更新數據。
使用fclose(FileStreamPointer)可以在完成使用之后關閉先前打開的文件。
使用fseek(FileStreamPointer, StructureIndex*sizeof(MyDataItem), SEEK_SET)準備在現有的和打開的文件中讀取或(over)寫入StructureIndex'th MyDataItem。這將設置當前文件的位置以進行讀取/寫入。請注意,fread()和fwrite()是從文件讀寫數據的函數,將當前位置提前讀取/寫入的數據量。使用fread(PointerToMyDataItemStructure, 1, sizeof(MyDataItem), FileStreamPointer)來讀取MyDataItem。使用fwrite(PointerToMyDataItemStructure, 1, sizeof(MyDataItem), FileStreamPointer)寫一個MyDataItem。
使用fstat()或stat()找出文件的大小。這些在C中不是標準的,它們是擴展(POSIX或其他)。
通過調用ftruncate(),truncate()和類似的函數可以實現在文件的最后刪除MyDataItem,但它們在C中不是標準的,它們是擴展名(POSIX或其他)。
沒有標準/通用的功能來刪除文件的一部分在其開始或中間的某個地方。您必須創建一個新文件并將其中的數據復制/寫入到您希望保留的數據中(然后刪除舊文件并可能重命名新文件),或者從您想要的部分之后復制文件中的數據用fread()和fwrite()在這個被刪除的部分刪除然后截斷該文件。
使用remove()刪除文件。使用rename()重命名文件。
使用tmpnam() + fopen()或tmpfile()創建臨時文件。
您的操作系統可能會為文件I/O提供其他有用的功能。
有關詳細信息,請參閱文檔。
總結
以上是生活随笔為你收集整理的c语言结构体写入dat文件中,.dat在C中的结构化文件处理(手册?)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql错误代码对照表较完整
- 下一篇: 机载雷达导论(第1~6章)