Quelle est la différence entre% c et% C dans printf?
-
10-07-2019 - |
Question
Je ne trouve que des références pour les petits c. Je suppose que le C majuscule est pour Unicode, mais je ne suis pas sûr. Pour les nombres inférieurs, les deux caractères sortent le même caractère.
La solution
À partir de MSDN:
% c
type: int or wint_t
Utilisé avec les fonctions printf, spécifie un caractère à un octet; lorsqu'il est utilisé avec les fonctions wprintf, spécifie un caractère large.
% C
type: int or wint_t
Utilisé avec printf fonctions, spécifie un caractère large; lorsqu'il est utilisé avec les fonctions wprintf, spécifie un caractère à octet unique.
plus d'informations sur les spécificateurs de format ici
Autres conseils
De MSDN
% c
Utilisé avec les fonctions printf, spécifie un caractère à un octet; utilisé avec les fonctions wprintf, spécifie un caractère large.
% C
Utilisé avec les fonctions printf, spécifie un caractère large; lorsqu'il est utilisé avec les fonctions wprintf, spécifie un caractère à octet unique.
Notez que% C n'est pas standard. La conversion standard des caractères est la suivante:
- % c est utilisé pour un
int
.printf
l'affiche comme s'il s'agissait d'uncaractère non signé
.wprintf
affiche le résultat de la conversion enwchar_t
parbtowc
. - % lc est utilisé pour un
wint_t
.printf
affiche le résultat de la conversion en chaîne multi-octets parwcrtomb
.wprintf
l'affiche comme s'il s'agissait d'unwchar_t
.