2010-08-20 10 views

Répondre

3

La documentation printf dit:

Le caractère% est suivi par zéro ou plusieurs des drapeaux suivants:

# La valeur doit être convertie en un « « autre forme » ». Pour 0 conversions, le premier caractère de la chaîne de sortie est mis à zéro (par en préfixant un 0 s'il n'était pas déjà ). Pour les conversions x et X, un résultat non nul a la chaîne '0x' (ou '0X' pour les conversions X) ajouté à . Pour les conversions A, e, E, f, F, g et G , le résultat contient toujours un point décimal, même si aucun ne le suit (normalement, un point décimal apparaît dans les résultats de ces conversions seulement si un chiffre suit). Pour les conversions g et G, les zéros à droite ne sont pas supprimés du résultat comme ils le seraient autrement. Pour les autres conversions , le résultat est undefined.conversions, le résultat est indéfini.

docs MSDN sur les drapeaux sont here

donc% # x la valeur est tout simplement préfixée avec 0x. Où% x donnerait 34ab% # x donnerait 0x34ab

2

printf lorsqu'il est utilisé avec spécificateur x, # provoque la sortie à être préfixé avec 0x à condition que la valeur en cours d'impression est autre que0.