Bonjour,
Je suis le tuto sur développez.com et je vois que gets est utilisé ?
?
Bonjour,
Je suis le tuto sur développez.com et je vois que gets est utilisé ?
?
regarde aussi ici : http://c.developpez.com/cours/, il y a d'autres tutoriels
mais maintenant, il est plutôt déconseillé d'utiliser gets(). On préfère un fgets(stdin) qui permet d'éviter les problèmes du buffer overflow en controlant la taille du buffer de réception.
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Ok
Sinon il ne faut vraiment pas utiliser gets ? Et donc dans cet exemple :
Je dois remplacer gets(CH1) par fgets(CH1,100,stdin) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include <stdio.h> #include <string.h> main() { /* Déclarations */ char CH1[100], CH2[100]; /* chaînes données */ char CH3[100]=""; /* chaîne résultat */ /* Saisie des données */ printf("Introduisez la première chaîne de caractères : "); gets(CH1); printf("Introduisez la deuxième chaîne de caractères : "); gets(CH2); /* Traitements */ strncpy(CH3, CH1, strlen(CH1)/2); strncat(CH3, CH2, strlen(CH2)/2); /* Affichage du résultat */ printf("Un demi \"%s\" plus un demi \"%s\" donne \"%s\"\n", CH1, CH2, CH3); return 0; }
oui et même mieux (dans ce cas là) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part fgets(CH1, sizeof(CH1), stdin)
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Merci
J'ai regardé aussi la pge de strlen dans le man et c'est marqué :
Je comprends pas size_t strlen ? Que veut dire size_t ?SYNOPSIS
#include <string.h>
size_t strlen (const char *s);
Partager