c++ 二進制方式讀取文件 讀取特殊類型數據

 1 #include <iostream>
 2 #include <fstream>
 3 using namespace std;  4 
 5 /*
 6 二進制方式進行讀寫文件,能夠讀寫 各類各樣數據類型的數據  7 */
 8 
 9 class Person { 10 public: 11     char name[50]; 12     int age; 13 }; 14 
15 // 1 寫二進制文件
16 void binaryWrite() { 17     // 1 包含頭文件 18     // 2 建立流對象 並指定路徑和文件打開方式
19     ofstream ofs("person.txt", ios::out | ios::binary) ; 20     // 3 指定路徑和打開方式: 利用了建立對象的構造函數 21     // 4 寫文件 22     // 搞一個本身建立的對象進行寫入
23     Person p = { "張三", 18 }; 24     ofs.write((const char*)&p, sizeof(Person)); 25  ofs.close(); 26 } 27 
28 // 2 二進制方式讀文件
29 void binaryRead() { 30     // 1 包含頭文件 31     // 2 建立流對象
32  ifstream ifs; 33     // 3 指定文件路徑和打開方式
34     ifs.open("person.txt", ios::in | ios::binary); 35     if (!ifs.is_open()) { 36         cout << "文件打開失敗" << endl; 37         return; 38  } 39     // 4 讀取文件
40  Person p; 41     ifs.read((char *)&p, sizeof(Person)); 42     cout << p.name << " " << p.age << endl; 43     // 5 關閉流
44  ifs.close(); 45 } 46 
47 int main() { 48 
49     //binaryWrite();
50  binaryRead(); 51 
52     system("pause"); 53     return 0; 54 }

其實在寫文件的時候,只是 按照開始位置 和指定文件大小 寫入一段二進制ios

因此打開也這樣作, 給對象p一個開始位置 複製過去相應的大小。數據結構

二進制方式就很強大,可以讀取各類特殊類型的數據結構函數

相關文章
相關標籤/搜索