Size Prefixes for scanf and wscanf Format-Type Specifiers
To Specify Use Prefix With Type Specifier
double l e, E, f, g, or G
long double (same as double) L e, E, f, g, or G
long int l d, i, o, x, or X
long unsigned int l u
short int h d, i, o, x, or X
short unsigned int h u
__int64 I64 d, i, o, u, x, or X
Single-byte character with scanf h c or C
Single-byte character with wscanf h c or C
Wide character with scanf l c or C
Wide character with wscanf l c, or C
Single-byte – character string with scanf h s or S
Single-byte – character string with wscanf h s or S
Wide-character string with scanf l s or S
Wide-character string with wscanf l s or S
Following are examples of the use of h and l with scanf functions and wscanf functions:
scanf( "%ls ", &x ); // Read a wide-character string
wscanf( "%lC ", &x ); // Read a single-byte character