Bonjour à tous,
je me demandais comment tester que le caractère fourni à un int par scanf n'était pas '\n' :
MerciCode:
1
2
3
4 int a; scanf("%d",&a); /* quel test pour dire a!='\n' */
Version imprimable
Bonjour à tous,
je me demandais comment tester que le caractère fourni à un int par scanf n'était pas '\n' :
MerciCode:
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.
La valeur de retour de scanf qui t'indique le nombre de champs correctement renseignés
man scanf
Hola,
il me semble avoir essayé un:
et ca ne fonctionne pas...Code:
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.
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'.