Saisie chaines caractère en boucle en C

Signaler
Messages postés
4
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
3 août 2006
-
Messages postés
4
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
3 août 2006
-
Voila alors j'ai rencontré un problème que je n'avai jamais rencontrer.
Je veu faire une fonction qui rempli un tablaeu avec des chaines de
caractères saisie au clavier sur l'entree standard donc, une fonction
très simple en l'occurence, mais mon problème est le suivant : une
boucle sur deux passe sans que l'on me propose d'entrer une chaine.
Voici ma fonction :



void rempli_tableau(int longueur,char **tableau)

{

int i;

char *s = (char *)malloc(30 * sizeof(int));

for(i=0;i<longueur;i++)

{

fgets(s,30,stdin);

tableau[i] = (char *)malloc((strlen(s)+1)*sizeof(int));

strcpy(tableau[i],s);

}

}



Voila si quelqu'un sais comment résoudre ce problème...

PS : j'ai déja essayer de remplacer le fgets par un scanf mais cela ne change rien.

3 réponses

Messages postés
78
Date d'inscription
lundi 14 avril 2003
Statut
Membre
Dernière intervention
23 avril 2010

Essaye de rajouter un fflush(stdin) juste apres le strcpy avant la fin de ta boucle. Ca devrait pouvoir regler ton probleme...

Voila


Mess with the best, die like the rest
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Autre solution : printf("")

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
Messages postés
4
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
3 août 2006

OK Je vous remercie la solution du fflush(stdin) résoud le problème
pour toutes les boucles sauf la premiere ce qui n'est plus trop un
problème, je la fait boucler dans le 'vide'. Merci a vous