Molti di noi conoscono gli usi tradizionali di scanf. Bene, ecco alcuni dei fatti meno noti
Come leggere solo una parte dell’input di cui abbiamo bisogno? Ad esempio, si consideri un flusso di input che contiene solo caratteri seguiti da un numero intero o un float. E abbiamo bisogno di scansionare solo quel numero intero o float.
Cioè,
Input: “questo è il valore 100”,
Output: valore letto è 100
Input : “questo è il valore 21.2”,
Output: valore letto è 21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
Ora, presumibilmente, non sappiamo cosa caratteri precedenti sono, ma sappiamo per certo che l’ultimo valore è il numero intero., Come possiamo scansionare l’ultimo valore come numero intero?
Sotto la soluzione funziona solo se la stringa di input non ha spazi.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., In questo caso, ignora l’input fino allo spazio successivo o alla nuova riga. Allo stesso modo se scrivi %*d ignorerà gli interi fino allo spazio successivo o alla nuova riga.
Il fatto sopra potrebbe non sembrare un trucco utile a prima vista. Per capire il suo utilizzo, vediamo prima fscanf ().
fscanf (): Stanco di tutta la sintassi clumpsy da leggere dai file? bene, fscanf viene in soccorso.
int fscanf(FILE *ptr, const char *format, ...)
fscanf legge da un file puntato dal puntatore FILE (ptr), invece di leggere dal flusso di input.
Considera il seguente file di testo abc.,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
Ora, vogliamo leggere solo il campo città del file di testo sopra, ignorando tutti gli altri campi. Una combinazione di fscanf e il trucco di cui sopra fa con facilità
Uscita:
CITYhyderbaddelhibangalore
Esercizio: Contare il numero di parole, i caratteri e le linee in un file utilizzando fscanf!
Questo articolo è contribuito da Nikhil Chakravartula., Se ti piace GeeksforGeeks e vorrebbe contribuire, si può anche scrivere un articolo e mail il tuo articolo a [email protected]. Vedere il tuo articolo che appare sulla pagina principale GeeksforGeeks e aiutare altri Geek.