C ++ sscanf () - Libreria standard C ++

La funzione sscanf () in C ++ viene utilizzata per leggere i dati dal buffer delle stringhe.

prototipo di sscanf ()

 int sscanf (const char * buffer, const char * formato,…);

La sscanf()funzione legge i dati legge i dati dal buffer e memorizza i valori nelle rispettive variabili.

È definito nel file di intestazione.

Parametri sscanf ()

  • buffer: Puntatore a una stringa di caratteri con terminazione null da cui leggere i dati.
  • format: Puntatore a una stringa di caratteri con terminazione null che specifica come leggere l'input. Consiste di identificatori di formato che iniziano con%.

    La stringa di formato ha le seguenti parti:

    • Non whitespace characterstranne% ciascuno dei quali consuma un carattere identico dal flusso di input. Può causare il fallimento della funzione se il carattere successivo nello stream non è uguale.
    • Whitespace character: Tutti i caratteri di spazio bianco consecutivi vengono trattati come un singolo carattere di spazio vuoto. Inoltre, " n", " t" e "" sono considerati uguali.
    • Conversion specification: Segue il seguente formato:
      • Carattere% iniziale che specifica l'inizio
      • Un carattere facoltativo * chiamato soppressione delle assegnazioni. Se questo carattere è presente, fscanf () non assegna il risultato a nessun argomento ricevente.
      • Un numero intero positivo facoltativo che specifica la larghezza massima del campo. Specifica il numero massimo di caratteri che fscanf () può utilizzare durante la conversione specificata dalla specifica di conversione corrente.
      • Un modificatore di lunghezza opzionale che specifica la dimensione dell'argomento ricevente.
      • Un identificatore di formato di conversione.
        Identificatore di formato Descrizione
        % Corrisponde alla% letterale
        c Corrisponde a uno o più caratteri. Se la larghezza è definita, corrisponde esattamente ai caratteri di larghezza.
        S Corrisponde a caratteri consecutivi non spazi bianchi. Se la larghezza è definita, corrisponde esattamente ai caratteri di larghezza o fino a quando non viene trovato il primo spazio bianco.
        (impostato) Corrisponde a una sequenza di caratteri non vuota dal set di caratteri specificato. Se è presente all'inizio del set, tutti i caratteri non presenti nel set vengono abbinati.
        d Corrisponde a un numero intero decimale.
        io Corrisponde a un numero intero.
        o Corrisponde a un numero intero ottale senza segno.
        X o x Corrisponde a un numero intero esadecimale senza segno.
        u Corrisponde a un numero intero decimale senza segno.
        A o a, E o e, F o f, G o g Corrisponde a un numero in virgola mobile.
        n Restituisce il numero di caratteri letti fino a quel momento.
        p Corrisponde a una sequenza di caratteri definita dall'implementazione che definisce un puntatore.
    Quindi il formato generale dell'identificatore di formato è: %(*)(width)(length)specifier
  • …: altri argomenti aggiuntivi per la ricezione dei dati. Si verificano in una sequenza in base all'identificatore di formato.

sscanf () Restituisce il valore

  • In caso di successo, la sscanf()funzione restituisce il numero di argomenti di ricezione assegnati con successo.
  • Se si verifica un errore di corrispondenza prima dell'assegnazione del primo argomento ricevente, restituisce zero.
  • Se si verifica un errore di input prima dell'assegnazione del primo argomento di ricezione, viene restituito EOF.

Esempio: come funziona la funzione sscanf ()

 #include int main () ( char fname(50), lname(50); char buffer() = "Dennis Ritchie"; sscanf(buffer, "%s %s", fname, lname); printf("First name : %s Last name : %s", fname, lname); return 0; )

Quando esegui il programma, un possibile output sarà:

 Nome: Dennis Cognome: Ritchie

Articoli interessanti...