1. 程式人生 > >將二進位制資料儲存為位元組資料

將二進位制資料儲存為位元組資料

 今天遇到一個問題,需要用到一些.dat檔案,每個檔案大概300位元組,是一些系統配置資料。考慮到用到的地方比較多,每次讀一次效能也不好,便考慮將.dat檔案存為位元組陣列,作為全域性配置資料,這樣就比較方便。接下來找了下直接轉換的方法,似乎是沒有合適的。所以就打算自己寫一個,便於處理,不然自己一個個的輸入就太煎熬了。

基本的做法是先讀取.dat檔案,再將按位元組陣列的方式處理,這裡將其儲存為txt檔案的形式。

#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;
}
將輸出的txt檔案導成位元組資料就ok了。