What is the format string modifier for char-as-number?
I want to read in a number never exceeding 255 (actually much less) into an unsigned char type variable using sscanf.
Using the typical
char source[] = "x32";
char separator;
unsigned char dest;
int len;
len = sscanf(source,"%c%d",&separator,&dest);
// validate and proceed...
I'm getting the expected warning: argument 4 of sscanf is type char*, int* expected.
As I understand the specs, there is no modifier for char (like %sd for short, or %lld for 64-bit long)
- is it dangerous? (will overflow just overflow (roll-over) the variable or will it write outside the allocated space?)
- is there a prettier way to achieve that than allocating a temporary int variable?
- ...or would you suggest an entirely different approach altogether?