URL: https://linuxfr.org/forums/programmation-c--2/posts/saisie-de-chaine-et-correction-derreur-autonome Title: saisie de chaine et correction d'erreur autonome Authors: frp31 Date: 2007年01月04日T09:14:42+01:00 Tags: Score: 0 Bonjour, Je travaille sur un "bout" de code pour faire une saisie long int et gérer l'erreur de frappe (comme une lettre ou deux ou trois dans la saisie). pour ça j'ai écrit un petit bout de code TESTEUR (compilable) 1ère idée Envoyer l'utilisateur se faire voir (un peu barbare) ;) 2ème idée un peut plus interessante vérifier que tous les caractères de la chaine sont des chiffres Ca marche mais il est impossible de traiter l'erreur. 3éme idée _et c'est là que je vais avoir besoin de vos conseils/idées_ utiliser pour convertir long int = chaine: P.saisie=stroul(&buffer, NULL, 10) ceci fonctionne mais ne selectionne que les X chiffres présents avant le caractère génant par exemple : si buffer = 1234d555 p.saisie = 1234 et non 1234555 < **ce que je veux faire comme correction automatique justement pour éviter les utilisateurs porteurs de moufles** j'ai fouiller le fichier sting.h pour trouver une fonction capable de supprimer un caractere dans un **char buffer[X];** mais je n'ai rien trouvé de tout ça... Je pense donc qu'il faut créer une fonction du style for(i=0;i<strlen(buffer);i++) { £spaces£ £/spaces£switch(buffer[i]) £spaces£ £/spaces£{ £spaces£ £/spaces£case '0' : £spaces£ £/spaces£strcat(buffer2[i],buffer[i]); £spaces£ £/spaces£break ; £spaces£ £/spaces£// .... etc ... pour les 10 chiffres £spaces£ £/spaces£default : // ne rien faire £spaces£ £/spaces£break; £spaces£ £/spaces£} } en utilisant la fonction strcat. puis P.saisie=stroul(&buffer2, NULL, 10) est ce une bonne méthode ? y'a t'il plus simple ?

AltStyle によって変換されたページ (->オリジナル) /