N'est-ce pas strtoul que tu veux utiliser ?
Dans ce cas là (juste pour chipoter), tu veux une saisie d'un unsigned long int
Quand tu dis que la méthode 2 ne te permet pas de traiter l'erreur, tu veux dire gérer errno ?
Si tu vérifies que tous les caractères sont des chiffres et que tu ne dépasses pas ULONG_MAX (auquel cas errno serait positionné à ERANGE par strtoul), qu'est-ce qui t'empêche de faire ça à la main ?
unsigned long resultat=0
unsigned long limite=0
Tant que parcours de la chaine
Si le caractère est compris entre '0' et '9'alors
result *= 10
result += valeur portée par le caractère testé
finsi
si result < limite alors
depassement ERANGE et tout le toutim puis on sort
sinon
limite = result
finsi
fin tant que
# str what ?
Posté par ecid . En réponse au message saisie de chaine et correction d'erreur autonome. Évalué à 2.
N'est-ce pas strtoul que tu veux utiliser ?
Dans ce cas là (juste pour chipoter), tu veux une saisie d'un
unsigned long int
Quand tu dis que la méthode 2 ne te permet pas de traiter l'erreur, tu veux dire gérer errno ?
Si tu vérifies que tous les caractères sont des chiffres et que tu ne dépasses pas ULONG_MAX (auquel cas errno serait positionné à ERANGE par strtoul), qu'est-ce qui t'empêche de faire ça à la main ?
unsigned long resultat=0
unsigned long limite=0
Tant que parcours de la chaine
Si le caractère est compris entre '0' et '9'alors
result *= 10
result += valeur portée par le caractère testé
finsi
si result < limite alors
depassement ERANGE et tout le toutim puis on sort
sinon
limite = result
finsi
fin tant que