假设我有一个 .img 文件。我想解析文件并以十六进制显示。这是我在互联网上的代码参考。但应用程序显示为空。请帮我解决它。
int _tmain(int argc, _TCHAR* argv[])
{
const char *filename = "test.img";
ifstream::pos_type size;
char * memblock;
ifstream file(filename, ios::in|ios::binary|ios::ate);
if (file.is_open())
{
size = file.tellg();
memblock = new char [size];
file.seekg (0, ios::beg);
file.read (memblock, size);
file.close();
std::string tohexed = ToHex(std::string(memblock, size), true);
cout << tohexed << endl;
}
}
string ToHex(const string& s, bool upper_case) {
ostringstream ret;
for (string::size_type i = 0; i < s.length(); ++i)
{
int z = (int)s[i];
ret << std::hex << std::setfill('0') << std::setw(2) << (upper_case ? std::uppercase : std::nouppercase) << z;
}
return ret.str();
}