beaucoup d’entre nous connaissent les utilisations traditionnelles de scanf. Eh bien, voici quelques-uns des faits moins connus
Comment ne lire qu’une partie de l’entrée dont nous avons besoin? Par exemple, considérons un flux d’entrée qui ne contient que des caractères suivis d’un entier ou d’un flottant. Et nous devons analyser uniquement Cet entier ou ce flotteur.
Qui est
Entrée: « c’est la valeur de 100”,
Sortie: lire la valeur est 100
Entrée : « c’est la valeur 21.2”,
Sortie : lire la valeur de 21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
Maintenant, sans doute, nous ne savons pas ce que les précédents personnages sont mais nous avons sûrement savoir que la dernière valeur est un entier., Comment Pouvons-nous analyser la dernière valeur en tant qu’entier?
la solution ci-dessous ne fonctionne que si la chaîne d’entrée n’a pas d’espaces.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., Dans ce cas, il ignore l’entrée jusqu’à l’espace suivant ou retour à la ligne. De même, si vous écrivez % * d, il ignorera les entiers jusqu’à l’espace suivant ou à la nouvelle ligne.
le fait ci-dessus peut ne pas sembler une astuce utile à première vue. Afin de comprendre son utilisation, voyons d’abord fscanf().
fscanf (): fatigué de toute la syntaxe clumpsy à lire à partir de fichiers? eh bien, fscanf vient à la rescousse.
int fscanf(FILE *ptr, const char *format, ...)
fscanf lit à partir d’un fichier pointé par le pointeur de FICHIER (ptr), au lieu de lire à partir du flux d’entrée.
considérez le fichier texte suivant abc.,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
Maintenant, nous voulons lire, seule la ville de champ du fichier texte ci-dessus, en ignorant tous les autres champs. Une combinaison de fscanf et l’astuce mentionnée ci-dessus le fait avec une facilité
Résultat:
CITYhyderbaddelhibangalore
Exercice: Compter le nombre de mots, caractères et de lignes dans un fichier à l’aide de fscanf!
Cet article a été rédigé par Nikhil Chakravartula., Si vous aimez GeeksforGeeks et souhaitez contribuer, vous pouvez également écrire un article et envoyer votre article à [email protected]. voir votre article apparaissant sur la page principale GeeksforGeeks et aider les autres Geeks.