#include int main(int argc, char* argv[]) { int fn=0, fu=0, fd=8; FILE* fp = stdin; int i, j; for(i=1; i< argc; ++i) { if(argv[i][0] == '-') { int ii = i; //elmentjuk az i erteket es az indexelesnel ezt hasznaljuk for(j=1; argv[ii][j] != '\0'; ++j) { switch(argv[ii][j]) { case 'n': fn = 1; break; case 'u': fu = 1; break; case 'd': fd = atoi(argv[ii+1]); ++i; break; } } } else { fp = fopen(argv[i], "r"); } } int ch; int db=0; char* format = fu ? "%02X " : "%02x "; //igy mindig ket karakteren irja ki az adott karakter ascii kodjat hexaban. while( (ch = fgetc(fp)) != EOF) { if(fn && (db % fd) == 0) printf("%d: ",db); printf(format, ch); ++db; if( (db % fd) == 0 ) printf("\n"); } if(fp != stdin) fclose(fp); return 0; }