PLE:Unidad7Ejercicio12

/* Programa:        Unidad7Ejercicio12.cpp Fecha:           21/02/2007 Descripción:     Visor hexadecimanl. using namespace std;
 * 1) include
 * 2) include
 * 3) include
 * 4) include
 * 5) include
 * 6) include
 * 7) include
 * 1) include

const int NUMBYTES = 128;

void visualiza(char b[], int n, long p); char menu;

void main {       int numBytes; char nomfich[80],opc; char buffer[NUMBYTES]; ifstream fe; long pos;

cout<<"Nombre de fichero: "; cin>>nomfich;

fe.open(nomfich, ios::in | ios::binary); if(!fe.good) {               exit(0); }       else {               while(opc != 's') {                       // Leemos el buffer fe.read(buffer,128); numBytes=fe.gcount; // Retrocedemos fe.seekg(-128, ios::cur); pos = fe.tellg; // Visualizo visualiza(buffer,numBytes, pos); // Muestro el menu opc = menu; switch(opc) {                               case '+':       fe.seekg(128, ios::cur); break; case '-':      fe.seekg(-128, ios::cur); break; }               }                fe.close; } }

void visualiza(char b[], int n, long p) { int i;       clrscr; cout << "Posicion actual es = " << dec << p << endl; cout << "Registro actual es = " << p/NUMBYTES << endl; for(i = 0; i < n; i++) {               if(i % 16 == 0) cout << endl; cout << hex << setfill('0') << setw(2) << (unsigned int) b[i] % 256 << ' '; } }

char menu {       char o;        cout << endl << endl; cout << "********************** MENU **********************" << endl; cout << "(+) Siguiente Reg. (-) Anterior Registro (s) Salir" << endl; cin.get(o); return o; }