caratteri di campo del tipo di scanf
Le informazioni seguenti si applicano a qualsiasi di scanf famiglia di funzioni, incluse le versioni sicure, ad esempio scanf_s.
type il carattere è l'unico campo obbligatorio di formato, viene visualizzato dopo tutti i campi facoltativi di formato.type il carattere determina se l'argomento associato viene interpretato come un carattere, una stringa, o numero.
Caratteri tipi per le funzioni denominate scanf
Carattere |
tipo di input previsto |
tipo di argomento |
Argomento di dimensioni nella versione sicura? |
---|---|---|---|
c |
Characteruna volta utilizzato con scanf le funzioni, specifica il carattere a byte singolo, una volta utilizzato con wscanf le funzioni, specifica il carattere di tipo " wide ".Gli spazi vuoti che normalmente vengono ignorati vengono letti quando c è specificato.Per leggere un carattere a byte singolo di non bianco spazio seguente, utilizzare %1s; per leggere il carattere di tipo " wide " seguente di non bianco spazio, utilizzare %1ws. |
puntatore a char una volta utilizzato con scanf funzioni, puntatore a wchar_t una volta utilizzato con wscanf funzioni. |
Obbligatorio.La dimensione non include lo spazio per un terminatore null. |
C |
carattere opposto di dimensione.una volta utilizzato con scanf le funzioni, specifica il carattere di tipo " wide "; una volta utilizzato con wscanf le funzioni, specifica il carattere a byte singolo.Gli spazi vuoti che normalmente vengono ignorati vengono letti quando C è specificato.Per leggere un carattere a byte singolo di non bianco spazio seguente, utilizzare %1s; per leggere il carattere di tipo " wide " seguente di non bianco spazio, utilizzare %1ws. |
puntatore a wchar_t una volta utilizzato con scanf funzioni, puntatore a char una volta utilizzato con wscanf funzioni. |
Obbligatorio.L'argomento di dimensione non include lo spazio per un terminatore null. |
d |
Integer decimale. |
puntatore a int. |
No. |
i |
Intero.esadecimale se la stringa di input inizia con “0x„ o “0X„, ottale se la stringa inizia con “0", altrimenti numero decimale. |
puntatore a int. |
No. |
o |
Integer ottale. |
puntatore a int. |
No. |
u |
Integer decimale senza segno. |
puntatore a unsignedint. |
No. |
x |
Integer esadecimale. |
puntatore a int. |
No. |
e, E, f, g, G |
Valore a virgola mobile composto dal segno facoltativo (+ o -), la stringa di uno o più cifre decimali che contengono separatore decimale e esponendo facoltativo (“e„ o “E„) seguiti facoltativamente da un valore integer con segno. |
puntatore a float. |
No. |
n |
Nessun l'input letto dal flusso o dal buffer. |
puntatore a int, dove è il numero di caratteri archiviato correttamente indicato dal flusso o dal buffer fino a quel momento della chiamata corrente scanf funzioni o wscanf funzioni. |
No. |
s |
Stringa, fino al primo spazio vuoto (spazio, scheda o nuova riga).Per leggere le stringhe non delimitate da spazi, set di utilizzo di parentesi quadre ([ ]), come descritto in specifica la larghezza di scanf. |
una volta utilizzato con scanf le funzioni, indica una matrice di caratteri a byte singolo, una volta utilizzato con wscanf le funzioni, indica una matrice a caratteri estesi.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 automaticamente aggiunto. |
Obbligatorio.La dimensione include lo spazio per un terminatore null. |
S |
stringa di caratteri di Opposto-dimensione, fino al primo spazio vuoto (spazio, scheda o nuova riga).Per leggere le stringhe non delimitate da spazi, set di utilizzo di parentesi quadre ([ ]), come descritto in specifica la larghezza di scanf. |
una volta utilizzato con scanfle funzioni, indica una matrice a caratteri estesi, una volta utilizzato con wscanfle funzioni, indica una matrice di singolo-byte-carattere.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 automaticamente aggiunto. |
Obbligatorio.La dimensione include lo spazio per un terminatore null. |
a e A identificatori (vedere caratteri il campo tipo di printf) non essere disponibile con scanf.
Gli argomenti di dimensione, se necessario, devono essere passati nell'elenco di parametri immediatamente dopo di che si applicano a.Ad esempio, il seguente codice:
char string1[11], string2[9];
scanf("%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.Le dimensioni del buffer dovrebbero essere almeno una più delle specifiche di larghezza poiché lo spazio deve essere riservato per il terminatore null.
La stringa di formato può gestire a byte singolo o l'input di caratteri estesi indipendentemente dal fatto che il carattere a byte singolo o la versione a caratteri estesi della funzione viene utilizzato.Pertanto, leggere a byte singolo o i caratteri di tipo " wide " con scanf funzioni e wscanf funzioni, identificatori di formato di utilizzo come segue.
Per leggere carattere come |
utilizzare questa funzione |
con questi identificatori di formato |
---|---|---|
scegliere il byte |
Funzioni scanf |
c, hc o hC |
scegliere il byte |
Funzioni wscanf |
C, hc o hC |
ampio |
Funzioni wscanf |
c, lc o lC |
ampio |
Funzioni scanf |
C, lc o lC |
Per analizzare le stringhe con scanf funzioni e wscanf le funzioni, utilizzano la tabella precedente con gli tipo-identificatori di formato s e S anziché c e C.