#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 第乙個引數表示的是快取,第二個引數表示的是基本單元的大小,第三引數表示的是基...