Maison >développement back-end >C++ >%i contre %d en C : quand ces spécificateurs de format diffèrent-ils ?
Différences entre les spécificateurs de format %i et %d dans les fonctions d'E/S formatées (printf / scanf)
Fonctions d'E/S formatées comme printf et scanf utilise des spécificateurs de conversion pour contrôler la manière dont les données sont représentées lors de l'entrée ou de la sortie. Parmi ces spécificateurs, %i et %d sont couramment utilisés pour les entiers.
Utilisation pour la sortie (%i contre %d)
Lorsqu'ils sont utilisés comme spécificateurs de format pour sortie, il n'y a aucune distinction entre %i et %d. Les deux produisent le même résultat. Ils représentent une valeur entière au format décimal.
Spécificateurs d'entrée
Cependant, la distinction apparaît lors de l'utilisation de %i et %d comme spécificateurs d'entrée (dans scanf ). Voici où réside la principale différence :
%i : le comportement par défaut est similaire à %d (entier décimal signé). Cependant, il possède une fonctionnalité supplémentaire : il permet la saisie dans d'autres bases, telles que :
Exemple pratique
Pour illustrer la différence, considérons la chaîne d'entrée "033".
En résumé, alors que %i et %d se comportent de la même manière pour la sortie, ils diffèrent dans leur comportement pour l'entrée. %i fournit des fonctionnalités étendues en autorisant la saisie hexadécimale et octale, tandis que %d est strictement limité à la saisie décimale signée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!