二進位制檔案讀寫,自由讀取檔案頭和檔案尾

2021-09-24 16:52:21 字數 2045 閱讀 4773

#include #include #include using namespace std;

struct filehead ;

void printf_filehead(filehead & fh)

int main()

; double dnum[5] = ;

char end_mark = "歡迎使用 code::blocks svn build!\n"

"code::blocks 是一款功能強大的ide (整合開發環境),力求為開發者(個人或團隊)提供乙個能滿足各種需求的優秀程式設計環境。\n"

"它的外掛程式架構使得開發者可以編寫外掛程式,從而新增各種各樣的功能。\n";

ofstream fout("data.bin", ios::binary);

fout.write((char *)(&file_head), sizeof(file_head)); // 預寫檔案頭

// 二進位制讀寫是把 每乙個位元組轉換成 char 寫到檔案裡的

fout.write((char *)(&inum), 5 * sizeof(int)); // 5個 int型別寫入

fout.write((char *)(&dnum) , sizeof(dnum)); // 整個 dnum陣列

int end_pos = fout.tellp(); // 資料結束pos

fout.write(end_mark , strlen(end_mark)); // 整個 dnum陣列

cout << "寫入位元組(資料和end_mark):" << 5 * sizeof(int) + sizeof(dnum) + strlen(end_mark) << endl;

file_head.file_size = fout.tellp();

fout.seekp(0, ios::beg);

fout.write((char *)(&file_head), sizeof(file_head)); // 修改檔案頭

printf_filehead(file_head);

fout.clear();

fout.close();

int i_read;

double d_reade;

ifstream fin("data.bin", ios::binary);

// 獲得檔案長度

fin.seekg(0, ios::end);

int length = fin.tellg();

fin.seekg(0, ios::beg);

cout << "data.bin 檔案長度:" << length << endl;

// 讀檔案頭

filehead fh;

fin.seekg(0, ios::beg);

fin.read((char *)(&fh), sizeof(fh));

printf_filehead(fh);

// 讀檔案結束標記

char mark[512] = "";

fin.seekg(end_pos, ios::beg);

fin.read(mark, length - end_pos);

cout << mark << endl;

// 讀取資料

fin.seekg(file_head.beg_pos); // 移到資料區

fin.seekg(4 * sizeof(int), ios::cur); // 移動到 第五個整數

fin.read((char *)(&i_read), sizeof(i_read));

cout << i_read << endl;

fin.seekg(sizeof(double), ios::cur); // 跳過第乙個浮點數

fin.read((char *)(&d_reade), sizeof(d_reade));

cout << d_reade << endl;

fin.clear();

fin.close();

return 0;

}

二進位制檔案讀寫

define crt secure no warnings include include include size t fread void buffer,size t size,size t count,file stream size t fwrite const void buffer,si...

C 讀寫二進位制檔案

摘要 使用c 讀寫二進位制檔案,在開發中操作的比較頻繁,今天有幸找到一篇文章,遂進行了一些試驗,並進行了部分的總結。使用c 操作檔案,是研發過程中比較頻繁的,因此進行必要的總結和封裝還是十分有用的。今天在網上找到一篇,遂進行了部分的試驗,以記之,備後用。include 寫二進位制檔案 寫二進位制檔案...

c 讀寫二進位制檔案

最近需要用到二進位制檔案讀寫的相關操作,這邊稍微總結下,首先二進位制檔案的讀寫可以使用fread和fwrite來處理。fread函式原型 size t cdecl fread void size t,size t,file 第乙個引數表示的是快取,第二個引數表示的是基本單元的大小,第三引數表示的是基...