Les chaines de caracteres
dina
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
slm ;bj j ai trouvé un broblem dans les chaines de caracteres : quand je veux lire une chaine de caracteres je fait :
main()
{char c[50];
gets (c); }
ça permet de lire une chaine de caracteres (d'apres notre professeur) mais pour moi pandent l'execution je peut lire que le premier caractere et le programme sort de l'execution,je sais pas ou est le brobleme , si vous trouvez quelque chose aidez moi svp ;j ai vraiment besoin de ça .merci
main()
{char c[50];
gets (c); }
ça permet de lire une chaine de caracteres (d'apres notre professeur) mais pour moi pandent l'execution je peut lire que le premier caractere et le programme sort de l'execution,je sais pas ou est le brobleme , si vous trouvez quelque chose aidez moi svp ;j ai vraiment besoin de ça .merci
Configuration: Windows XP Internet Explorer 7.0
4 réponses
-
essaye avec le mon clef string c[50];
-
Salut,
Tu peux déjà dire à ton professeur que gets est une fonction très dangereuse.
man getsBOGUES N'utilisez jamais gets(). Comme il est impossible de savoir à l'avance combien de caractères seront lus par gets(), et comme celui-ci écrira tous les caractères lus, même s'ils débor- dent du tampon, cette fonction est extrèmement dangereuse à utiliser. On a déjà utilisé ce dysfonctionnement pour créer des trous de sécurité. UTILISEZ TOUJOURS fgets() À LA PLACE DE gets().Utilises plutôt fgets
-
Re,
Donne ici ton code pour pouvoir tester. -
Re,
Oups, j'ai confondu les messages ;-)
Il faut écrirefgets(c,50,stdin);
c - c'est le nom de ta variable
50 - c'est la taille
stdin - c'est l'entrée standard (le clavier)