Yes I quickly googled hex command line argument and found it, here's the code for any who may be interested. It handles any hex values I give it, 0xFF, FF or ff, and reads 10 as decimal 16.
#include <stdio.h>
#include <stdlib.h>
int main ( int argc, char *argv[] ) // program.exe file.name hexAddress newByte
{
FILE *f = fopen( argv[1], "r+b" );
long int hexAddress = ( long int ) strtol( argv[2], NULL, 16 );
fseek( f, hexAddress, SEEK_SET );
unsigned char newByte = ( unsigned char ) strtol( argv[3], NULL, 16 );
fwrite( &newByte, sizeof( newByte ), 1, f );
fclose( f );
}