Display contents of specified file in both ASCII and in hex.
#include <iostream>
#include <fstream>
#include <cctype>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
if(argc != 2) {
cout << "Usage: Display <filename>\n";
return 1;
}
ifstream in(argv[ 1 ], ios::in | ios::binary);
if(!in) {
cout << "Cannot open input file.\n";
return 1;
}
register int i, j;
int count = 0;
char c[16];
cout.setf(ios::uppercase);
while(!in.eof()) {
for(i = 0; i < 16 && !in.eof(); i++) {
in.get(c[i]);
}
if(i <16)
i--; // get rid of eof
for(j = 0; j < i; j++)
cout << setw(3) << hex << (int) c[j];
for(; j < 16; j++)
cout << " ";
cout << "\t";
for(j = 0; j < i; j++)
if(isprint(c[ j ]))
cout << c[ j ];
else
cout << ".";
cout << endl;
count++;
if(count == 16) {
count = 0;
cout << "Press ENTER to continue: ";
cin.get();
cout << endl;
}
}
in.close();
return 0;
}
Related examples in the same category