#include /* HEX standard input to standard output */ void HEX_digit(short di, FILE *file); main(int argc, char *argv[]) { short c; short hi, low; short nl; FILE *file; FILE *outFile; if(argc!=3) {printf("Opps!\n");return;} file=fopen(argv[1],"r"); if(file==0) {printf("File %s failed to open.\n",argv[1]);return;} outFile=fopen(argv[2],"r"); if(outFile!=0) {printf("File %s already exists.\n",argv[2]);fclose(file);fclose(outFile);return;} outFile=fopen(argv[2],"w"); if(outFile==0){printf("Could not create file %s.\n",argv[2]);fclose(file);return;} nl=0; while ( (c=getc(file))!=EOF ) { hi=c/16;low=c-16*hi; HEX_digit(hi,outFile);HEX_digit(low,outFile); nl++; if(nl>15) { nl=0; putc('\n',outFile);} else putc(' ',outFile); } putc('\n',outFile); fclose(file); fclose(outFile); } void HEX_digit(short di, FILE *file) { if(di>9) putc('a'-10+di,file); else putc('0'+di,file); }