J'ai essayé d'exécuter ce programme à Turbo C mais n'a pas pu déchiffrer la sortie. Qu'est-ce que ce % * c code> signifie? Toute aide serait appréciée.
Enter day, month and year 23
2
1991
3
5
The date is: 23 1991 5
4 Réponses :
Le et obtenir la journée (18), mois (7) et année (2012) interprété correctement. Les espaces de la chaîne de format sont cruciaux et compliquent des choses. Normalement, d'où le comportement observé que lorsque vous avez tapé: p> Le 2 (seul) a été consommé par le premier Ceci est standard C et non une caractéristique particulière de Turbo C (dont la première édition de la question spécifiée, Mais la question a été modifiée pour supprimer la référence à Turbo C puisque j'ai écrit cette réponse). P> P> * code> dans un
scanf () code> Format signifie 'Lire les données mais ne l'attribuez pas à une variable dans la liste des arguments ". Dans le contexte, cela signifie que vous pouvez taper:
% c code> lit le caractère suivant, même un espace, mais les espaces autour des spécificateurs de conversion
% * C code> traitent de l'espace blanc. Le code a donc besoin d'une non-vide. caractère à consommer. p>
% * c code> et le 3 (seuls) a été consommé par la seconde. P>
Je suppose que je ne le savais pas. Merci de toute façon!
le * code> après
% code> dans une chaîne de format signifie que l'entrée correspondant au format sera ignorée (il n'est donc pas nécessaire de passer dans un pointeur sur une variable pour stocker le valeur correspondante que vous n'allez pas utiliser). P>
Cela signifie ignorer le caractère suivant tel qu'un espace, / code> ou un
- code> qui est courant dans les dates écrites. p>
Utiliser * code> avec
scanaf code> supprime l'affectation. Le résultat de la conversion qui suit est jeté. P>
Et s'il veut défaire les 3 caractères suivants?
@ Tuğrulbüyükışık: Vous pouvez utiliser
% * 3c code> pour spécifier le nombre de caractères à sauter.