Sscanf c ++

Sscanf c ++

C ++ è un rapido e uno dei linguaggi di programmazione più antichi ideali per lo sviluppo dei sistemi operativi. Offre prestazioni elevate e grande velocità e copre vari tipi di applicazioni. Fornisce una sintassi molto avanzata, rendendosi difficile e difficile da imparare. La sua funzionalità integrata, tuttavia, è molto utile per creare qualsiasi tipo di applicazione. Convertire i numeri da stringhe o stringhe da numeri è un compito abbastanza confuso. Pertanto, abbiamo bisogno di alcune funzioni che possono essere utilizzate con la conversione di NUM in STR o STR a NUM. Qui impareremo a utilizzare la funzione SSCANF per convertire un input in un tipo di output specificato.

La funzione SSCANF C ++

La funzione SSCANF è una delle funzioni C ++ più comunemente utilizzate per convertire i numeri in stringhe. Prende un input dall'utente o dal buffer, converte la stringa in un INT e la memorizza in una variabile specificata. In parole semplici, interpreta l'input in base al formato e memorizza il valore risultante in una posizione specifica. Se esegue una funzione simile a scanf, ma legge l'ingresso dal buffer anziché l'ingresso standard.

Vedere la seguente sintassi completa della funzione SSCANF fornita dal linguaggio di programmazione C ++:

La funzione SSCANF prende un minimo di due argomenti di input e un elenco di argomenti opzionali. L'argomento facoltativo significa che possono essere saltati se non necessari. Legge i dati dal buffer "input" nel formato "formato" nella posizione specificata dal "argomento_list". Il parametro o l'argomento "input" rappresenta la stringa della funzione utilizzata per recuperare i dati. Il parametro "formato" rappresenta la stringa di formato che specifica come leggere l'input da un buffer.

Il formato del specificatore "formato" è il seguente:

Inizia con un segno % seguito da * che è un carattere di soppressione dell'assegnazione. I campi di larghezza e lunghezza sono opzionali e possono essere saltati. Se fornito, la funzione SSCANF consuma solo quel numero massimo di caratteri specificati dalla "larghezza". Il campo "lunghezza" definisce la dimensione dell'argomento ricevente. Il NAME Specifier_Sta contiene il carattere Specifier (C, S, D, ecc.) nella specifica del tipo di conversione. Il "argomento_list" può contenere almeno un ulteriore argomento. Dipende dalla stringa "formato".

La funzione SSCANF restituisce i tre tipi di risultati: gli argomenti di ricezione assegnati correttamente in caso di funzione di successo, zero in caso di fallimento corrispondente e EOF in caso di errore di input. Ora, esploriamo alcuni esempi utili per apprendere l'uso della funzione SSCANF di C++.

Esempio 1:

Questo è un esempio molto semplice e fondamentale della funzione SSCANF. Una stringa viene assegnata a una variabile che viene passata alla funzione SSCANF. Il "int a" è definito per mantenere il risultato della funzione SSCANF. Vedere il seguente codice fornito e comprendere ogni riga di codice.

Dopo aver incluso il file di intestazione iostream, il metodo principale () viene avviato. La stringa "S = 104785" viene inizializzata e passata alla funzione SSCANF SSCANF (S, "%D", & A). La %d rappresenta il formato di conversione. E "A" viene fornito per trattenere il risultato.

#includere
Utilizzo dello spazio dei nomi std;
int main ()

const char* s = "104785";
int a;
sscanf (s, "%d", & a);
cout << "\nThe converted value of "<restituzione 0;

L'output può essere visto qui. La stringa "104785" viene convertita nel numero decimale "104785".

Esempio 2:

In questo esempio, leggiamo il galleggiante e il doppio galleggiante usando la stessa funzione SSCANF. Una stringa viene assegnata a una variabile che viene passata alla funzione SSCANF per la conversione del formato. Vedere il seguente codice per comprendere la funzione di SSCANF con numeri galleggianti e a doppio galleggiante.

Si noti che nell'esempio precedente, %D viene utilizzato come "specificatore del formato". In questo esempio, vengono utilizzati %F e %LF. La %F viene utilizzata per convertire l'input in un numero di galleggiante e %LF viene utilizzato per convertire il numero in un numero a doppio galleggiante.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

const char* s = "104785.54 ";
galleggiare a;
sscanf (s, "%f", & a);
printf ("\ nthe Float Value is: %f", a);
Double B;
sscanf (s, "%lf", & b);
printf ("\ nthe il valore a doppio galleggiante è: %f", b);
restituzione 0;

Controlla l'output indicato da segue:

Si noti che l'output dopo il decimale è diverso per il galleggiante e per il doppio galleggiante. Questo perché il galleggiante fornisce il risultato approssimativo più vicino ed è conveniente, veloce e preciso. Mentre il doppio galleggiante fornisce il risultato esatto calcolato in quanto si tratta di affidabilità e precisione. Tuttavia, è un po 'più lento del galleggiante.

Esempio 3:

Giochiamo con alcuni dati di array. In questo esempio, l'input viene fornito sotto forma di un array e viene convertito in stringhe semplici. Il specificatore del formato %S viene utilizzato per convertire l'ingresso in una stringa. Quindi, usiamo la %S come specificatore di formato qui. Sono definiti due array vuoti per contenere l'output - FN [10] e LN [10]. Quello che segue è il codice.

Qui, un nome composto da nome e cognome viene assegnato a un array buf [] e viene passato alla funzione SSCANF, convertendo ogni elemento dell'array in una stringa. Quando esegui il programma di codice, noterai ogni elemento dell'array separatamente. Poiché ci sono solo due campi di uscita definiti (FN e LN), i due elementi di array sono mostrati dal programma. L'array FN [10] contiene il nome "Daniyal". E l'array LN [10] contiene il cognome "Privater".

#includere
int main ()

char fn [10], ln [10];
Char Buf [] = "Daniyal Privater";
Sscanf (BUF, " %s %s", fn, ln);
printf ("Il nome è: %s \ n il cognome è: %s \ n", fn, ln);
restituzione 0;

L'output di questo esempio è mostrato di seguito:

Come puoi vedere, il valore dell'array "Daniyal Privater" viene convertito in due stringhe - "Daniyal" e "Privater" - dallo Specificatore del formato %S.

Conclusione

Questo tutorial riguarda la funzione SSCANF. Qui, abbiamo imparato a utilizzare la funzione SSCANF in modo efficiente per convertire i dati. La funzione SSCANF prende l'ingresso dal buffer e lo converte nel tipo di output specificato definito dal specificatore "formato". Ci vogliono tre o più tre argomenti a seconda del specificatore "formato". Il valore di input è il primo parametro e il specificatore del formato è il secondo. Istruisce la funzione del tipo di conversione. Il terzo parametro è facoltativo. Può essere un argomento o un elenco di più argomenti a seconda del specificatore "formato". Restituisce i tre tipi di risultati: gli argomenti di ricezione, zero o EOF (fine del file). SSCANF è una funzione molto semplice e facile di C ++ che viene utilizzata per le conversioni.