Les chaines de caracteres
Fermé
dina
-
28 déc. 2008 à 16:09
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 28 déc. 2008 à 17:43
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 28 déc. 2008 à 17:43
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
A voir également:
- Les chaines de caracteres
- Caractères ascii - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux clavier azerty - Guide
- Exemple de mot de passe à 8 caractères - Guide
4 réponses
spoophy
Messages postés
355
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
19 août 2009
41
28 déc. 2008 à 16:17
28 déc. 2008 à 16:17
essaye avec le mon clef string c[50];
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 569
28 déc. 2008 à 16:30
28 déc. 2008 à 16:30
Salut,
Tu peux déjà dire à ton professeur que gets est une fonction très dangereuse.
man gets
Tu peux déjà dire à ton professeur que gets est une fonction très dangereuse.
man gets
BOGUES 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
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 569
28 déc. 2008 à 17:41
28 déc. 2008 à 17:41
Re,
Donne ici ton code pour pouvoir tester.
Donne ici ton code pour pouvoir tester.
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 569
28 déc. 2008 à 17:43
28 déc. 2008 à 17:43
Re,
Oups, j'ai confondu les messages ;-)
Il faut écrire
c - c'est le nom de ta variable
50 - c'est la taille
stdin - c'est l'entrée standard (le clavier)
Oups, j'ai confondu les messages ;-)
Il faut écrire
fgets(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)