Maison >développement back-end >C++ >Pourquoi mon code ne parvient-il pas à imprimer un uint64_t avec un « % » final parasite au format » ?

Pourquoi mon code ne parvient-il pas à imprimer un uint64_t avec un « % » final parasite au format » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-17 12:17:02690parcourir

Why Does My Code Fail to Print a uint64_t with

Défi de formatage printf : gestion de uint64_t

Lors d'une tentative d'impression d'une variable uint64_t, vous pouvez rencontrer un message d'erreur similaire à : "fausse à la fin du '%' au format." Ce problème se pose en raison du recours aux macros de format de la norme ISO C99, qui ne sont pas universellement définies.

La résolution réside dans la demande explicite de définition de ces macros. Voici comment procéder :

Définition de la définition __STDC_FORMAT_MACROS

Ajoutez la ligne suivante en haut de votre code :

#define __STDC_FORMAT_MACROS

Cette définition demande au compilateur d'inclure les macros de format nécessaires, garantissant que la macro PRIu64 est reconnue et disponible pour use.

Une fois cette définition en place, le code suivant sera compilé avec succès :

#include <inttypes.h>
#include <stdio.h>

int main()
{
  uint64_t ui64 = 90;
  printf("test uint64_t : %" PRIu64 "\n", ui64);
  return 0;
}

En spécifiant la définition __STDC_FORMAT_MACROS, vous vous assurez que la variable uint64_t est correctement formatée et imprimée, résolvant le problème que vous avez rencontré plus tôt.

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