Caratteri di campo di tipo per scanfscanf Type Field Characters

Le informazioni seguenti si applicano a qualsiasi famiglia di funzioni scanf , incluse le versioni protette, ad esempio scanf_s.The following information applies to any of the scanf family of functions, including the secure versions, such as scanf_s.

Il carattere type è l'unico campo di formato obbligatorio e viene visualizzato dopo tutti i campi di formato facoltativi.The type character is the only required format field; it appears after any optional format fields. Il carattere type carattere determina se l'argomento associato viene interpretato come carattere, stringa o numero.The type character determines whether the associated argument is interpreted as a character, string, or number.

Caratteri tipo per funzioni scanfType Characters for scanf functions

CarattereCharacter Tipo di input previstoType of input expected Tipo di argomentoType of argument Argomento di dimensione nella versione protetta?Size argument in secure version?
c Carattere.Character. Una volta usato con funzioni scanf , specifica un carattere a byte singolo; quando usato con funzioni wscanf , specifica un carattere wide.When used with scanf functions, specifies single-byte character; when used with wscanf functions, specifies wide character. Caratteri di spazio che normalmente vengono ignorati quando è specificato c .White-space characters that are ordinarily skipped are read when c is specified. Per leggere il successivo carattere a un byte che non sia uno spazio vuoto, usare %1s. Per leggere il successivo carattere wide che non sia uno spazio vuoto, usare %1ws.To read next non-white-space single-byte character, use %1s; to read next non-white-space wide character, use %1ws. Puntatore a char se usato con funzioni scanf , puntatore a wchar_t se usato con funzioni wscanf .Pointer to char when used with scanf functions, pointer to wchar_t when used with wscanf functions. Obbligatorio.Required. La dimensione non include lo spazio per una terminazione NULL.Size does not include space for a null terminator.
C Dimensioni carattere opposto.Opposite size character. Una volta usato con funzioni scanf , specifica un carattere wide; quando usato con funzioni wscanf , specifica un carattere a singolo byte.When used with scanf functions, specifies wide character; when used with wscanf functions, specifies single-byte character. Caratteri di spazio che normalmente vengono ignorati quando è specificato C .White-space characters that are ordinarily skipped are read when C is specified. Per leggere il successivo carattere a un byte che non sia uno spazio vuoto, usare %1s. Per leggere il successivo carattere wide che non sia uno spazio vuoto, usare %1ws.To read next non-white-space single-byte character, use %1s; to read next non-white-space wide character, use %1ws. Puntatore a wchar_t se usato con funzioni scanf , puntatore a char se usato con funzioni wscanf .Pointer to wchar_t when used with scanf functions, pointer to char when used with wscanf functions. Obbligatorio.Required. L'argomento relativo alla dimensione non include lo spazio per una terminazione NULL.Size argument does not include space for a null terminator.
d Integer decimale.Decimal integer. Puntatore a int.Pointer to int. No.No.
i Intero.An integer. Esadecimale se la stringa di input inizia con "0x" o "0X", ottale se la stringa inizia con "0", in caso contrario decimale.Hexadecimal if the input string begins with "0x" or "0X", octal if the string begins with "0", otherwise decimal. Puntatore a int.Pointer to int. No.No.
o Integer ottale.Octal integer. Puntatore a int.Pointer to int. No.No.
p Indirizzo del puntatore in cifre esadecimali.A pointer address in hexadecimal digits. Il numero massimo di cifre lette dipende dalle dimensioni di un puntatore (32 o 64 bit), che a sua volta dipende dall'architettura del computer.The maximum number of digits read depends on the size of a pointer (32 or 64 bits), which depends on the machine architecture. I prefissi accettati sono "0x" e "0X"."0x" or "0X" are accepted as prefixes. Puntatore a void*.Pointer to void*. No.No.
u Intero decimale senza segno.Unsigned decimal integer. Puntatore a unsigned int.Pointer to unsigned int. No.No.
x Integer esadecimale.Hexadecimal integer. Puntatore a int.Pointer to int. No.No.
e, E, f, F, g, Ge, E, f, F, g, G Valore a virgola mobile composto dal segno (+ o -) facoltativo, serie di uno o più cifre decimali che include il separatore decimale e l'esponente facoltativo ("e" o "E") seguito facoltativamente da un intero con segno.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. Puntatore a float.Pointer to float. No.No.
a, Aa, A Valore a virgola mobile costituito da una serie di una o più cifre esadecimali che contiene un separatore decimale facoltativo e un esponente ("p" o "P") seguito da un valore decimale.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. Puntatore a float.Pointer to float. No.No.
n Nessun input letto dal flusso o buffer.No input read from stream or buffer. Puntatore a intin cui è stato correttamente archiviato il numero di caratteri letti dal flusso o dal buffer fino un determinato punto della chiamata corrente alle funzioni scanf o wscanf .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.No.
s Stringa, fino al primo carattere di spazio vuoto (spazio, scheda o una nuova riga).String, up to first white-space character (space, tab or newline). Per leggere stringhe non delimitati da caratteri di spazio, usare il set di parentesi quadre ([ ]), come illustrato in scanf Width Specification.To read strings not delimited by space characters, use set of square brackets ([ ]), as discussed in scanf Width Specification. Una volta usato con funzioni scanf , specifica una matrice di caratteri a singolo byte; quando usato con funzioni wscanf , specifica una matrice di caratteri wide.When used with scanf functions, signifies single-byte character array; when used with wscanf functions, signifies wide-character array. In entrambi i casi, la matrice di caratteri deve essere sufficientemente grande per il campo di input e il carattere di terminazione null che viene aggiunto automaticamente.In either case, character array must be large enough for input field plus terminating null character, which is automatically appended. Obbligatorio.Required. La dimensione include lo spazio per una terminazione NULL.Size includes space for a null terminator.
S Stringa di caratteri di dimensione opposta fino al primo carattere di spazio vuoto (spazio, scheda o una nuova riga).Opposite-size character string, up to first white-space character (space, tab or newline). Per leggere stringhe non delimitate da caratteri di spazio, usare il set di parentesi quadre ([ ]), come illustrato in Specifica della larghezza per scanf.To read strings not delimited by space characters, use set of square brackets ([ ]), as discussed in scanf Width Specification. Quando viene usato con funzioni scanf, specifica una matrice di caratteri wide. Quando viene usato con funzioni wscanf, specifica una matrice di caratteri a un byte.When used with scanf functions, signifies wide-character array; when used with wscanf functions, signifies single-byte-character array. In entrambi i casi, la matrice di caratteri deve essere sufficientemente grande per il campo di input e il carattere di terminazione null che viene aggiunto automaticamente.In either case, character array must be large enough for input field plus terminating null character, which is automatically appended. Obbligatorio.Required. La dimensione include lo spazio per una terminazione NULL.Size includes space for a null terminator.

Gli argomenti di dimensione, se necessario, devono essere passati nell'elenco di parametri immediatamente dopo l'argomento a cui si applicano.The size arguments, if required, should be passed in the parameter list immediately following the argument they apply to. Ad esempio, il seguente codice:For example, the following code:

char string1[11], string2[9];  
scanf_s("%10s %8s", string1, 11, string2, 9);  

legge una stringa con una lunghezza massima di 10 in string1e una stringa con una lunghezza massima di 8 in string2.reads a string with a maximum length of 10 into string1, and a string with a maximum length of 8 into string2. Le dimensioni del buffer devono essere superiori di almeno un valore rispetto alle specifiche di larghezza poiché è necessario riservare dello spazio per una terminazione null.The buffer sizes should be at least one more than the width specifications since space must be reserved for the null terminator.

La stringa di formato può gestire gli input di caratteri a singolo byte o wide, a prescindere che venga usata la versione con carattere a byte o una versione a caratteri wide.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. Pertanto, per leggere i caratteri a singolo byte o wide con funzioni scanf e wscanf , usare gli identificatori di formato come indicato di seguito.Thus, to read single-byte or wide characters with scanf functions and wscanf functions, use format specifiers as follows.

Per leggere un carattere comeTo read character as Usare questa funzioneUse this function Con questi identificatori di formatoWith these format specifiers
a un bytesingle byte Funzioniscanf scanf functions c, hco hCc, hc, or hC
a un bytesingle byte Funzioniwscanf wscanf functions C, hco hCC, hc, or hC
widewide Funzioniwscanf wscanf functions c, lco lCc, lc, or lC
widewide Funzioniscanf scanf functions C, lco lCC, lc, or lC

Per analizzare le stringhe con funzioni scanf e wscanf , usare la tabella sopra riportata con identificatori di tipo di formato s e S anziché c e C.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.

Vedere ancheSee Also

scanf, _scanf_l, wscanf, _wscanf_lscanf, _scanf_l, wscanf, _wscanf_l