Citation :
Mais j'arrive pas à lire la 1ère phrase il commence directement de la deuxième
|
Tu veux dire écrire la 1ere phrase? Effectivement le programme affiche directement
Code :
- veuillez saisir la phrase 0
- veuillez saisir la phrase 1
- (en attente d'entrée)
|
C'est probablement du au fait que scanf() laisse dans le buffer d'entrée le saut de ligne qui vient de l'appui sur entrée après avoir tappé N. Faut vider le buffer. On voit souvent fflush(stdin) mais c'est FAUX car comportement non déterminé. À la place on peut utiliser ceci
Code :
- fseek(stdin, 0, SEEK_END);
|
mais il y a peut-être mieux...
De manière générale: N c'est pas très parlant, peut-être plutôt genre nbphrases? Faut aussi vérifier ce que retourne malloc(). Et puis si on entre des lettres pour N le programme plante. A revoir mais les histoires d'entrée-sortie je laisse ma place à quelqu'un d'autre...
(Je fais exprès de ne pas donner de code complet corrigé...)
Message édité par rat de combat le 01-06-2015 à 21:35:57