Lorsque sscanf()
ou une autre fonction de la famille scanf
reçoit une séquence de chiffres dont la valeur convertie dépasse la valeur maximale du type entier cible,
- faut-il considérer que la conversion a échoué?
- le comportement est-il défini?
Lorsque sscanf()
ou une autre fonction de la famille scanf
reçoit une séquence de chiffres dont la valeur convertie dépasse la valeur maximale du type entier cible,
De la norme, 7.21.6.2p10 ((f)scanf
, s'applique à l'ensemble de la famille):
... Si cet objet n'a pas de type approprié, ou si le résultat de la conversion ne peut pas être représenté dans l'objet, le comportement est indéfini.
Ressemble à une autre raison d'être très prudent avec l' scanf
de la famille. L' strtoXX
fonctions de disposer d'un comportement défini. Ils retournent LONG_MAX
etc. trop grande entrée et réglez errno == ERANGE
. Donc, si vous avez besoin d'informations exactes, tokenise la saisie manuelle et l'utilisation de ces fonctions pour la conversion. Un autre avantage: une meilleure gestion des erreurs.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.