Campi di specifica di formato: funzioni di wscanf e di scanf
Le informazioni di seguito si applicano a tutto scanf la famiglia di funzioni, incluse le versioni sicure e descrive i simboli utilizzati per stabilire scanf funzioni come analizzare il flusso di input, come il flusso di input stdin per scanf, per i valori immessi nelle variabili del programma.
Una specifica di formato presenta il formato seguente:
%[*[]larghezza] [{h | " | ll | I64 | "}]tipo
format l'argomento indica l'interpretazione di input e può contenere uno o più dei seguenti elementi:
spazi vuoti: spazio vuoto (" "); scheda (" \ t "), o nuova riga (" \ n ").cause di uno spazio vuoto scanf per leggere, ma non archivio, tutti gli spazi vuoti consecutivi in fino allo spazio non vuoto successivo.Uno spazio vuoto nel formato corrisponde a qualsiasi numero 0 (inclusi) e la combinazione di spazi vuoti in.
Spazio vuoto, ad eccezione del segno di percentuale (%).Cause di uno spazio vuoto non scanf per leggere, ma non archivio, uno spazio vuoto non corrispondente.Se il carattere successivo nel flusso di input non corrisponde, scanf termina.
Specifiche di formato, introdotte dal segno di percentuale (%).Cause di una specifica di formato scanf per leggere e convertire i caratteri nei valori di un tipo specificato.Il valore assegnato a un argomento nell'elenco di argomenti.
Il formato viene letto da sinistra a destra.I caratteri alle specifiche di formato è previsto che corrispondano alla sequenza di caratteri nel flusso di input; i caratteri corrispondenti nel flusso di input sono digitalizzati ma non sono archiviati.Se un carattere nel flusso di input è in conflitto con la specifica di formato, scanf termina e il carattere viene lasciato nel flusso di input come se non fosse stato letto.
Quando la prima specifica di formato viene trovata, il valore del primo campo di input viene convertito in base alla specifica e viene archiviato nella posizione specificata dal primo argument.La seconda specifica di formato fa sì che il secondo campo di input a essere convertita e a archiviata nel secondo argument, e così via tramite la fine della stringa di formato.
Un campo di input viene definito come tutti i caratteri fino al primo spazio vuoto (spazio, scheda, o nuova riga, oppure finché il primo carattere che non può essere convertito in base alla specifica di formato, o fino alla larghezza del campo (se specificato) viene raggiunto.Se sono presenti troppi argomenti per le specifiche visualizzate, gli argomenti aggiuntivi vengono valutati ma ignorati.I risultati sono imprevedibili se non sono sufficientemente argomenti per la specifica di formato.
Ciascun campo della specifica di formato è un unico carattere o un numero per indicare un'opzione di formattazione specifica.type il carattere, visualizzato dopo l'ultimo campo facoltativo di formato, determina se il campo di input viene interpretato come un carattere, una stringa, o numero.
La specifica di formato più semplice contiene solo il segno di percentuale e un oggetto type carattere (ad esempio, %s).se un segno di percentuale (%) è seguito da un carattere non ha senso come carattere di formato-controllo, tale carattere e i caratteri seguenti (fino al segno di percentuale seguito) vengono considerati come sequenza comune di caratteri, ovvero, una sequenza di caratteri che deve corrispondere all'input.Ad esempio, specificare che un carattere di segno di percentuale è di essere di input, utilizzare %%.
un asterisco (*) segue il segno di percentuale eliminare l'assegnazione del campo di input seguente, che viene interpretato come campo di tipo specificato.Il campo viene analizzato ma non viene archiviato.
le versioni sicure (quelle con _s suffisso) di scanf la famiglia di funzioni è necessario che un parametro di dimensione del buffer venga passato subito dopo di ogni parametro di tipo c, C, s, S o [.Per ulteriori informazioni sulle versioni sicure di scanf la famiglia di funzioni, vedere scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l.
Vedere anche
Riferimenti
specifica la larghezza di scanf
caratteri di campo del tipo di scanf