將二進位制資料儲存為位元組資料
阿新 • • 發佈:2019-02-11
今天遇到一個問題,需要用到一些.dat檔案,每個檔案大概300位元組,是一些系統配置資料。考慮到用到的地方比較多,每次讀一次效能也不好,便考慮將.dat檔案存為位元組陣列,作為全域性配置資料,這樣就比較方便。接下來找了下直接轉換的方法,似乎是沒有合適的。所以就打算自己寫一個,便於處理,不然自己一個個的輸入就太煎熬了。
基本的做法是先讀取.dat檔案,再將按位元組陣列的方式處理,這裡將其儲存為txt檔案的形式。
將輸出的txt檔案導成位元組資料就ok了。#include <iostream> #include <fstream> #include <sstream> #include <fcntl.h> #include <iomanip> #include <string> std::string num2HexString(int value) { std::ostringstream ss; ss<<std::hex<<value; std::string tmp_str = "0x"; tmp_str += ss.str(); std::cout.clear(); std::cout<<std::dec; return tmp_str; } int main() { std::ifstream infile("9.dat",std::ios::binary); std::ofstream outfile("9.txt"); unsigned char ch; int count = 0; while(!infile.eof()) { ch = infile.get(); outfile<<num2HexString(ch); outfile<<","; } infile.close(); outfile.close(); getchar(); return 0; }