Lire une chaine de caractere

Résolu/Fermé
rose_de_sable Messages postés 9 Date d'inscription dimanche 12 avril 2009 Statut Membre Dernière intervention 20 juin 2011 - 12 avril 2009 à 17:19
rose_de_sable Messages postés 9 Date d'inscription dimanche 12 avril 2009 Statut Membre Dernière intervention 20 juin 2011 - 12 avril 2009 à 17:40
Bonjour,
j'ai entrain de programmer un mini shell sous C.
je doit lire une chaine de caractere (les commandes); j'ai fais gets(chaine) voila ce qu est agffiché:
warning: the `gets' function is dangerous and should not be used.
quand je fait scanf("%s",chaine) il lit que les lettre avant l'espace
par ex:
scanf("%s",chaine);
printf("%s",chaine);
si je fait tp systeme
il m'affiche que tp danc chaine=tp
j'ai pas compris pour quoi
qlqun peut m'aider!!!!!


merci
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
12 avril 2009 à 17:36
Salut,
gets ne doit pas être utilisé, la fonction est trop dangereuse. Tout comme scanf("%s";...) sans contrôle de chaîne.
Utilise fgets(chaine, sizeof chaine, stdin);
Attention, cela stockera aussi le \n s'il y a de la place. Mais tu peux l'enlever facilement.
Cdlt
1
rose_de_sable Messages postés 9 Date d'inscription dimanche 12 avril 2009 Statut Membre Dernière intervention 20 juin 2011
12 avril 2009 à 17:22
j'ai oublier de dire que je travaille avec ubuntu 8.10
et codeblocks
0
rose_de_sable Messages postés 9 Date d'inscription dimanche 12 avril 2009 Statut Membre Dernière intervention 20 juin 2011
12 avril 2009 à 17:40
merci bcp
sa marche tres bien...
0