Nota
L-aċċess għal din il-paġna jeħtieġ l-awtorizzazzjoni. Tista’ tipprova tidħol jew tibdel id-direttorji.
L-aċċess għal din il-paġna jeħtieġ l-awtorizzazzjoni. Tista’ tipprova tibdel id-direttorji.
The following information applies to any of the scanf family of functions, including the secure versions, such as scanf_s.
The type character is the only required format field; it appears after any optional format fields. The type character determines whether the associated argument is interpreted as a character, string, or number.
type Characters for scanf functions
| Character | Type of input expected | Type of argument | Size argument in secure version? |
|---|---|---|---|
c |
Character. When used with scanf functions, specifies single-byte character; when used with wscanf functions, specifies wide character. White-space characters that are ordinarily skipped are read when c is specified. Unlike with other type fields, the field width specifier indicates the exact number of characters, not the maximum. To read next non-white-space single-byte character, use %1s; to read next non-white-space wide character, use %1ws. |
Pointer to char when used with scanf functions, pointer to wchar_t when used with wscanf functions. |
Required. Size doesn't include space for a null terminator. |
C |
Opposite size character. When used with scanf functions, specifies wide character; when used with wscanf functions, specifies single-byte character. White-space characters that are ordinarily skipped are read when C is specified. Unlike with other type fields, the field width specifier indicates the exact number of characters, not the maximum. To read next non-white-space single-byte character, use %1s; to read next non-white-space wide character, use %1ws. |
Pointer to wchar_t when used with scanf functions, pointer to char when used with wscanf functions. |
Required. Size argument doesn't include space for a null terminator. |
d |
Decimal integer. | Pointer to int. |
No. |
i |
An integer. Hexadecimal if the input string begins with "0x" or "0X", octal if the string begins with "0", otherwise decimal. | Pointer to int. |
No. |
o |
Octal integer. | Pointer to int. |
No. |
p |
A pointer address in hexadecimal digits. The maximum number of digits read depends on the size of a pointer (32 bits or 64 bits), which depends on the machine architecture. "0x" or "0X" are accepted as prefixes. | Pointer to void*. |
No. |
u |
Unsigned decimal integer. | Pointer to unsigned int. |
No. |
x |
Hexadecimal integer. | Pointer to int. |
No. |
e, E, f, F, g, G |
Floating-point value consisting of optional sign (+ or -), series of one or more decimal digits containing decimal point, and optional exponent ("e" or "E") followed by an optionally signed integer value. | Pointer to float. |
No. |
a, A |
Floating-point value consisting of a series of one or more hexadecimal digits containing an optional decimal point, and an exponent ("p" or "P") followed by a decimal value. | Pointer to float. |
No. |
n |
No input read from stream or buffer. | Pointer to int, into which is stored number of characters successfully read from stream or buffer up to that point in current call to scanf functions or wscanf functions. |
No. |
s |
String, up to first white-space character (space, tab or newline). To read strings not delimited by space characters, use set of square brackets ([ ]), as discussed in scanf Width Specification. |
When used with scanf functions, signifies single-byte character array; when used with wscanf functions, signifies wide-character array. In either case, character array must be large enough for input field plus terminating null character, which is automatically appended. |
Required. Size includes space for a null terminator. |
S |
Opposite-size character string, up to first white-space character (space, tab or newline). To read strings not delimited by space characters, use set of square brackets ([ ]), as discussed in scanf Width Specification. |
When used with scanf functions, signifies wide-character array; when used with wscanf functions, signifies single-byte-character array. In either case, character array must be large enough for input field plus terminating null character, which is automatically appended. |
Required. Size includes space for a null terminator. |
The size arguments, if necessary, should be passed in the parameter list immediately following the argument they apply to. For example, the following code:
char string1[11], string2[9];
scanf_s("%10s %8s", string1, 11, string2, 9);
reads a string with a maximum length of 10 into string1, and a string with a maximum length of 8 into string2. The buffer sizes should be at least one more than the width specifications since space must be reserved for the null terminator.
The format string can handle single-byte or wide character input regardless of whether the single-byte character or wide-character version of the function is used. Thus, to read single-byte or wide characters with scanf functions and wscanf functions, use format specifiers as follows.
| To read character as | Use this function | With these format specifiers |
|---|---|---|
| single byte | scanf functions |
c, hc, or hC |
| single byte | wscanf functions |
C, hc, or hC |
| wide | wscanf functions |
c, lc, or lC |
| wide | scanf functions |
C, lc, or lC |
To scan strings with scanf functions, and wscanf functions, use the above table with format type-specifiers s and S instead of c and C.