If I have an integer variable I can use sscanf
as shown below by using the format specifier %d.
sscanf (line, "Value of integer: %d\n", &my_integer);
Where can I find format specifiers for uint8_t
, uint16_t
, uint32_t
and uint64_t
?
uint64_t has probably %lu.
They are declared in <inttypes.h>
as macros: SCNd8, SCNd16, SCNd32 and SCNd64.
Example (for int32_t):
sscanf (line, "Value of integer: %" SCNd32 "\n", &my_integer);
Their format is PRI (for printf)/SCN (for scan) then o, u, x, X d, i for the corresponding specifier then nothing, LEAST, FAST, MAX then the size (obviously there is no size for MAX). Some other examples: PRIo8, PRIuMAX, SCNoFAST16.
Edit: BTW a related question asked why that method was used. You may find the answers interesting.