Nichlas a écrit :
Mais bon apparemment, sans c'est pas faisable... Je vais tenter ça, merci 
|
Si, c'est faisable, mais très dangereux. Le problème de <scanf("%d", &nbr)>, c'est que scanf s'arrête dès qu'elle trouve un caractère qui n'est pas un nombre. Or, quand l'utilisateur tape "12<return>", ces 3 caractères sont stockés dans le buffer d'entrée. scanf récupère facilement le "1" et le "2"... mais laisse le "<return>" dans le buffer. Si, plus tard, tu fais un truc comme "saisir un nom", le scanf ayant déjà un caractère dans son buffer l'utilisera et ne s'arrêtera pas pour te laisser taper. Total, tu crois
1) que ton programme est buggé (ce qui est le cas)
2) que le bug se situe au niveau de la saisie du nom
Si tu utilises "fgets", l'ensemble des caractères est vidé du buffer pour être recopiés dans la chaine. Il te suffit ensuite d'exploiter les nombres de cette chaîne et laisser tomber le reste. Et ton buffer étant vide, le scanf suivant s'arrêtera gentiment pour te laisser saisir ton nom...
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.