Pbm chaine de caracteres
Fermé
sakura006
-
30 mai 2007 à 12:55
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 31 mai 2007 à 15:56
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 31 mai 2007 à 15:56
A voir également:
- Pbm chaine de caracteres
- Excel extraire chaine de caractère après un caractère ✓ - Forum Excel
- Deux caractères manquent dans cette url ✓ - Forum Programmation
- Clavier mac caractères spéciaux - Guide
- Caractères ascii - Guide
- Plus de chaine tv - Guide
5 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
30 mai 2007 à 13:04
30 mai 2007 à 13:04
Salut,
c'est normal, puisque tu utilises scanf (qui prends comme séparateur un caractère blanc)
essaie avec gets
tu peux aussi utiliser fgets
c'est normal, puisque tu utilises scanf (qui prends comme séparateur un caractère blanc)
essaie avec gets
gets(titre)tu ne dois pas utliser &titre puisque le nom de tablea est un pointeur de caractère (dans ton cas titre point sur 1er élément du tableau titre[41] )
tu peux aussi utiliser fgets
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
30 mai 2007 à 13:52
30 mai 2007 à 13:52
Salut,
Enlève le & dans ton scanf :)
EDIT : Ah bah lamij20 l'a déjà dit !
Si tu peux travailler sur du C++, il y a cin.get aussi comme alternative (+cin.sync)
Enlève le & dans ton scanf :)
EDIT : Ah bah lamij20 l'a déjà dit !
Si tu peux travailler sur du C++, il y a cin.get aussi comme alternative (+cin.sync)
on m'a dit de ne pas le faire parce ke sinon soit il affiche l'adresse ou bien il y a une erreur.
J'ai quand meme essayé mais ca marche pas.
J'ai quand meme essayé mais ca marche pas.
bon alors j'ai viré tous les scanf qu'ils y avaient dans ttes les lignes de code et je les ai remplacé par des gets et ca marche. J'aimerai juste savoir pkoi le melange scanf et gets n'ai pas possible. C juste dans DevC++ ou c un defaut du C?
En tout cas merci tout le monde pour vos réponses.
En tout cas merci tout le monde pour vos réponses.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
31 mai 2007 à 15:56
31 mai 2007 à 15:56
Salut,
ce n'est pas un défaut de C, c'est plutôt un défaut de comprehension de la part d'utilisateur :-))
quand tu fait gets le buffer va contenir un retour chariot ou EOF
qui sera lu par le prochain scanf par exemple
ce n'est pas un défaut de C, c'est plutôt un défaut de comprehension de la part d'utilisateur :-))
quand tu fait gets le buffer va contenir un retour chariot ou EOF
qui sera lu par le prochain scanf par exemple
30 mai 2007 à 13:33
Par contre avec gets ca marche seulement si j'isole la partie intéressante. Lorsqu'il est dans le code principal je ne peux pas ecrire apres et il passe direct a l'instruction d'apres. :'(
Je te donne la partie du code dans le quel il est.
// Instructions Titre Général : deb_titre: puts("Veuillez rentrer le titre general: ") ; gets(titre) ; fflush(stdin) ; printf("%s", titre) ; l_titre = strlen(titre) ; if(l_titre > 40) { puts("Vous n'avez pas respecté le nombre de caractères. Veuillez recommencer.") ; goto deb_titre ; } if( l_titre < 40) { l_space = 40 - l_titre ; for( i = 0 ; i < l_space ; i++ ) { space[i] = ' ' ; } } // Majuscules : char *pString2 = min_maj(titre); printf("%s\n", pString2); free(pString2); printf("%s", titre) ;Merci qd meme de ton aide tres rapide