Maison >développement back-end >C++ >Quelle est la principale différence entre les spécificateurs de format `%i` et `%d` dans `printf` et `scanf` en C ?
Comprendre la différence entre les spécificateurs de format %i et %d
Lors de l'utilisation de fonctions d'entrée/sortie formatées telles que printf et scanf, les spécificateurs de format jouent un rôle crucial dans le contrôle du type de données à imprimer ou lire. Parmi ceux-ci, les spécificateurs %d (entier) et %i (entier) méritent un examen attentif.
Utilisation dans printf
Pour les opérations de sortie, il n'y a aucune différence fonctionnelle entre %d et %i. Les deux généreront un entier décimal signé. Par exemple, utiliser %d ou %i avec la valeur entière 100 donnerait la chaîne "100".
Utilisation dans scanf
Cependant, la distinction entre %d et %i deviennent évidents dans les opérations d'entrée. Alors que %d analyse strictement un entier décimal signé, %i prend en charge les formats décimal, hexadécimal et octal.
Pour illustrer la différence, considérons l'exemple suivant :
scanf("%i", &number);
Si l'utilisateur saisit "033" , %i l'interprétera comme un nombre octal et attribuera la valeur 27 à la variable 'number', alors que %d attribuerait 33.
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!