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 }

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

所以打開也這樣做, 給對象p一個開始位置 復制過去相應的大小。

二進制方式就很強大,能夠讀取各種特殊類型的數據結構


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM