Bonjour à tous,
je me demandais comment tester que le caractère fourni à un int par scanf n'était pas '\n' :
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int a; scanf("%d",&a); /* quel test pour dire a!='\n' */
Bonjour à tous,
je me demandais comment tester que le caractère fourni à un int par scanf n'était pas '\n' :
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int a; scanf("%d",&a); /* quel test pour dire a!='\n' */
scanf() ne marche pas ainsi. Si tu tapes juste Entrée, il me semble que scanf() va continuer à attendre jusqu'à ce que tu tapes un caractère qui ne soit pas un séparateur. Puis il tentera de parser le nombre, et retournera une valeur indiquant s'il a échoué ou non.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
La valeur de retour de scanf qui t'indique le nombre de champs correctement renseignés
man scanf
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbe Un logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Hola,
il me semble avoir essayé un:
et ca ne fonctionne pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int i; int a; i=scanf("%d",&a); if (i==0) ...;
Comme je l'ai dit, scanf() attend toujours que tu tapes quelque chose (autre que [Espace] ou [Entrée], qui sont des blancs). Donc, si tu tapes juste [Entrée], scanf() ne retournera pas.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Je te suggère de lire une ligne par fgets() et ensuite de l'analyser avec ton sscanf().
Comme cela, tu sortiras de l'entrée clavier dès le '\n'.
Publication : Concepts en C
Mon avatar : Glenn Gould
--------------------------------------------------------------------------
Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager