Maison >développement back-end >C++ >Quelle est la principale différence entre `%i` et `%d` dans les entrées/sorties formatées en C ?

Quelle est la principale différence entre `%i` et `%d` dans les entrées/sorties formatées en C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-28 15:23:10827parcourir

What's the Key Difference Between `%i` and `%d` in C's Formatted Input/Output?

Différence entre les spécificateurs de conversion %i et %d dans les fonctions IO formatées

Dans les fonctions IO formatées, telles que printf et scanf, les spécificateurs de conversion sont utilisés pour contrôler l’interprétation et le formatage des données d’entrée et de sortie. Parmi les différents spécificateurs, %i et %d sont fréquemment utilisés pour les entiers.

Sortie :

Lorsqu'ils sont utilisés pour la sortie (par exemple, avec printf), %i et %d se comporte de la même manière. Ils représentent tous deux une valeur entière et l'impriment dans le format par défaut en fonction des paramètres régionaux du système.

Entrée :

Cependant, la distinction entre %i et %d apparaît pendant les opérations de saisie (par exemple, avec scanf). Ici, leur comportement diffère :

  • %d : Scanne un entier sous forme de nombre décimal signé, représenté dans la notation arithmétique de base.
  • % i: Analyse principalement les entiers sous forme de nombres décimaux signés, mais il permet également les représentations hexadécimales et octales s'ils sont préfixés de manière appropriée. Les nombres hexadécimaux commencent par "0x" (par exemple "0x20"), tandis que les nombres octaux commencent par "0" (par exemple "025").

Par conséquent, dans le cas d'une saisie comme " 033", scanf("%d") l'interprète comme 33 (un nombre décimal signé), tandis que scanf("%i") l'interprète comme 27 (un nombre décimal signé). nombre octal), indiquant une différence de représentation.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn