Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Horst Kraemer
ioops wrote:
Bonjour,
je suis débutant en c++, j'essaie de réaliser un tit programme que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning: the `gets' function is dangerous and should not be used.
"warning" ne veut pas dire "erreur". Ce message vous dit que l'utilisation de la fonction gets est dangereuse et déconseillée. Il ne s'agit donc que d'un conseil.
Le probleme est que gets accepte une chaine de caratères de longueur quelconque et que ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets. C'est tout, mais dans la "vraie" programmation cela rend inconcevable l'usage de "gets" parce qu'un programme qui utilise gets peut être détruit par l'entrée d'une chaine de caractères.
-- Horst
-- Lâche pas la patate!
ioops <pascal.chenevas@wanadoo.Fr> wrote:
Bonjour,
je suis débutant en c++, j'essaie de réaliser un tit programme
que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs
suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main':
: warning: the `gets' function is dangerous and should not be used.
"warning" ne veut pas dire "erreur". Ce message vous dit que
l'utilisation de la fonction gets est dangereuse et déconseillée.
Il ne s'agit donc que d'un conseil.
Le probleme est que gets accepte une chaine de caratères de longueur
quelconque et que ton programme plantera si la chaine est plus longue
que le tampon que tu as réservée pour gets. C'est tout, mais dans la
"vraie" programmation cela rend inconcevable l'usage de "gets" parce
qu'un programme qui utilise gets peut être détruit par l'entrée d'une
chaine de caractères.
je suis débutant en c++, j'essaie de réaliser un tit programme que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning: the `gets' function is dangerous and should not be used.
"warning" ne veut pas dire "erreur". Ce message vous dit que l'utilisation de la fonction gets est dangereuse et déconseillée. Il ne s'agit donc que d'un conseil.
Le probleme est que gets accepte une chaine de caratères de longueur quelconque et que ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets. C'est tout, mais dans la "vraie" programmation cela rend inconcevable l'usage de "gets" parce qu'un programme qui utilise gets peut être détruit par l'entrée d'une chaine de caractères.
-- Horst
-- Lâche pas la patate!
Matthieu Moy
Horst Kraemer writes:
Le probleme est que gets accepte une chaine de caratères de longueur quelconque et que ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets. C'est tout, mais dans la "vraie" programmation cela rend inconcevable l'usage de "gets" parce qu'un programme qui utilise gets peut être détruit par l'entrée d'une chaine de caractères.
Si ce n'était que « être détruit », ça ne serait pas encore trop grave. Le problème est surtout une question de sécurité : Tu autorises l'utilisateur de ton programme a écrire a un endroit où il n'est pas censé écrire, et si il est malin, il peut faire faire n'importe quoi a ton programme.
Si mes souvenirs sont bons, un des premiers vers a s'être propagé sur le net a grande échelle exploitait une faille de sécurité due a une utilisation de gets.
(au fait, ici, c'est fr.comp.lang.c++, et en C++, on ferait plutôt ça avec des streams)
-- Matthieu
Horst Kraemer <h-kraemer@lycos.de> writes:
Le probleme est que gets accepte une chaine de caratères de longueur
quelconque et que ton programme plantera si la chaine est plus longue
que le tampon que tu as réservée pour gets. C'est tout, mais dans la
"vraie" programmation cela rend inconcevable l'usage de "gets" parce
qu'un programme qui utilise gets peut être détruit par l'entrée d'une
chaine de caractères.
Si ce n'était que « être détruit », ça ne serait pas encore trop
grave. Le problème est surtout une question de sécurité : Tu autorises
l'utilisateur de ton programme a écrire a un endroit où il n'est pas
censé écrire, et si il est malin, il peut faire faire n'importe quoi a
ton programme.
Si mes souvenirs sont bons, un des premiers vers a s'être propagé sur
le net a grande échelle exploitait une faille de sécurité due a une
utilisation de gets.
(au fait, ici, c'est fr.comp.lang.c++, et en C++, on ferait plutôt ça
avec des streams)
Le probleme est que gets accepte une chaine de caratères de longueur quelconque et que ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets. C'est tout, mais dans la "vraie" programmation cela rend inconcevable l'usage de "gets" parce qu'un programme qui utilise gets peut être détruit par l'entrée d'une chaine de caractères.
Si ce n'était que « être détruit », ça ne serait pas encore trop grave. Le problème est surtout une question de sécurité : Tu autorises l'utilisateur de ton programme a écrire a un endroit où il n'est pas censé écrire, et si il est malin, il peut faire faire n'importe quoi a ton programme.
Si mes souvenirs sont bons, un des premiers vers a s'être propagé sur le net a grande échelle exploitait une faille de sécurité due a une utilisation de gets.
(au fait, ici, c'est fr.comp.lang.c++, et en C++, on ferait plutôt ça avec des streams)
-- Matthieu
Fabien LE LEZ
On Sun, 27 Mar 2005 19:33:06 +0200, Horst Kraemer :
ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets.
On n'est même pas sûr qu'il plante. En général, les données supplémentaires iront dans une autre zone mémoire, qui contenait autre chose au départ. Du coup, on peut obtenir toutes sortes de choses sympathiques : le programme peut fonctionner sur une machine, donner des résultats faux sur une autre, et planter sur une troisième ; ou le programme peut fonctionner pendant des mois, puis un jour on rajoute une variable dans un .cpp qui n'a rien à voir et tout plante -- et on met un temps énorme à détecter d'où vient le problème.
gets() est un cas particulier parce qu'il n'est pas possible de programmer correctement avec ; mais on obtient aussi parfois ce genre de comportement avec strcpy() si on ne fait pas les vérifications qui vont bien avant.
Heureusement, depuis, on a inventé le C++, et tout ça n'est plus qu'un mauvais rêve :-)
-- ;-)
On Sun, 27 Mar 2005 19:33:06 +0200, Horst Kraemer
<h-kraemer@lycos.de>:
ton programme plantera si la chaine est plus longue
que le tampon que tu as réservée pour gets.
On n'est même pas sûr qu'il plante. En général, les données
supplémentaires iront dans une autre zone mémoire, qui contenait autre
chose au départ. Du coup, on peut obtenir toutes sortes de choses
sympathiques : le programme peut fonctionner sur une machine, donner
des résultats faux sur une autre, et planter sur une troisième ; ou le
programme peut fonctionner pendant des mois, puis un jour on rajoute
une variable dans un .cpp qui n'a rien à voir et tout plante -- et on
met un temps énorme à détecter d'où vient le problème.
gets() est un cas particulier parce qu'il n'est pas possible de
programmer correctement avec ; mais on obtient aussi parfois ce genre
de comportement avec strcpy() si on ne fait pas les vérifications qui
vont bien avant.
Heureusement, depuis, on a inventé le C++, et tout ça n'est plus qu'un
mauvais rêve :-)
On Sun, 27 Mar 2005 19:33:06 +0200, Horst Kraemer :
ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets.
On n'est même pas sûr qu'il plante. En général, les données supplémentaires iront dans une autre zone mémoire, qui contenait autre chose au départ. Du coup, on peut obtenir toutes sortes de choses sympathiques : le programme peut fonctionner sur une machine, donner des résultats faux sur une autre, et planter sur une troisième ; ou le programme peut fonctionner pendant des mois, puis un jour on rajoute une variable dans un .cpp qui n'a rien à voir et tout plante -- et on met un temps énorme à détecter d'où vient le problème.
gets() est un cas particulier parce qu'il n'est pas possible de programmer correctement avec ; mais on obtient aussi parfois ce genre de comportement avec strcpy() si on ne fait pas les vérifications qui vont bien avant.
Heureusement, depuis, on a inventé le C++, et tout ça n'est plus qu'un mauvais rêve :-)
-- ;-)
Fabien LE LEZ
On Sun, 27 Mar 2005 14:54:52 -0800, "Ahmed MOHAMED ALI" :
Ce n'est pas un message d'erreur
Stricto sensu, si (mais pas au sens "erreur du compilateur") puisqu'un programme utilisant gets() ne peut pas fonctionner correctement.
-- ;-)
On Sun, 27 Mar 2005 14:54:52 -0800, "Ahmed MOHAMED ALI"
<ahmedmo@wanadoo.fr>:
Ce n'est pas un message d'erreur
Stricto sensu, si (mais pas au sens "erreur du compilateur") puisqu'un
programme utilisant gets() ne peut pas fonctionner correctement.
On Sun, 27 Mar 2005 14:54:52 -0800, "Ahmed MOHAMED ALI" :
Ce n'est pas un message d'erreur
Stricto sensu, si (mais pas au sens "erreur du compilateur") puisqu'un programme utilisant gets() ne peut pas fonctionner correctement.
-- ;-)
Ahmed MOHAMED ALI
Salut. Ce n'est pas un message d'erreur mais un avertissement qui te signale que la fonction gets n'est pas sécurisée et que c'est mieux d'utiliser une alterantive ( scanf,getchar...).Ces fonctions font partie de la librairie standard du langage C. Le mieux c'est d'utiliser std::cin de la librairie standard du C++.
Ahmed
"ioops" wrote in message news:
Bonjour,
je suis débutant en c++, j'essaie de réaliser un tit programme que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning: the `gets' function is dangerous and should not be used.
Merci pour votre aide.
Pascal
Salut.
Ce n'est pas un message d'erreur mais un avertissement qui te signale que la
fonction gets n'est pas sécurisée et
que c'est mieux d'utiliser une alterantive ( scanf,getchar...).Ces fonctions
font partie de la librairie standard du langage C.
Le mieux c'est d'utiliser std::cin de la librairie standard du C++.
Ahmed
"ioops" <pascal.chenevas@wanadoo.Fr> wrote in message
news:9367fd99bbd8c328b9ac82320f2367b3@iDebian...
Bonjour,
je suis débutant en c++, j'essaie de réaliser un tit programme
que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs
suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main':
: warning: the `gets' function is dangerous and should not be used.
Salut. Ce n'est pas un message d'erreur mais un avertissement qui te signale que la fonction gets n'est pas sécurisée et que c'est mieux d'utiliser une alterantive ( scanf,getchar...).Ces fonctions font partie de la librairie standard du langage C. Le mieux c'est d'utiliser std::cin de la librairie standard du C++.
Ahmed
"ioops" wrote in message news:
Bonjour,
je suis débutant en c++, j'essaie de réaliser un tit programme que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning: the `gets' function is dangerous and should not be used.
Merci pour votre aide.
Pascal
James Kanze
Matthieu Moy wrote:
Horst Kraemer writes:
Le probleme est que gets accepte une chaine de caratères de longueur quelconque et que ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets. C'est tout, mais dans la "vraie" programmation cela rend inconcevable l'usage de "gets" parce qu'un programme qui utilise gets peut être détruit par l'entrée d'une chaine de caractères.
Si ce n'était que « être détruit », ça ne serait pas encore trop grave. Le problème est surtout une question de sécurité : Tu autorises l'utilisateur de ton programme a écrire a un endroit où il n'est pas censé écrire, et si il est malin, il peut faire faire n'importe quoi a ton programme.
Si mes souvenirs sont bons, un des premiers vers a s'être propagé sur le net a grande échelle exploitait une faille de sécurité due a une utilisation de gets.
Tout à fait.
(au fait, ici, c'est fr.comp.lang.c++, et en C++, on ferait plutôt ça avec des streams)
Surtout, aussi, avec des std::string, de façon à ce qu'un débordement du buffer soit impossible.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Matthieu Moy wrote:
Horst Kraemer <h-kraemer@lycos.de> writes:
Le probleme est que gets accepte une chaine de caratères de
longueur quelconque et que ton programme plantera si la chaine
est plus longue que le tampon que tu as réservée pour gets.
C'est tout, mais dans la "vraie" programmation cela rend
inconcevable l'usage de "gets" parce qu'un programme qui
utilise gets peut être détruit par l'entrée d'une chaine de
caractères.
Si ce n'était que « être détruit », ça ne serait pas encore
trop grave. Le problème est surtout une question de sécurité :
Tu autorises l'utilisateur de ton programme a écrire a un
endroit où il n'est pas censé écrire, et si il est malin, il
peut faire faire n'importe quoi a ton programme.
Si mes souvenirs sont bons, un des premiers vers a s'être
propagé sur le net a grande échelle exploitait une faille de
sécurité due a une utilisation de gets.
Tout à fait.
(au fait, ici, c'est fr.comp.lang.c++, et en C++, on ferait plutôt ça
avec des streams)
Surtout, aussi, avec des std::string, de façon à ce qu'un
débordement du buffer soit impossible.
--
James Kanze mailto: james.kanze@free.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Le probleme est que gets accepte une chaine de caratères de longueur quelconque et que ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets. C'est tout, mais dans la "vraie" programmation cela rend inconcevable l'usage de "gets" parce qu'un programme qui utilise gets peut être détruit par l'entrée d'une chaine de caractères.
Si ce n'était que « être détruit », ça ne serait pas encore trop grave. Le problème est surtout une question de sécurité : Tu autorises l'utilisateur de ton programme a écrire a un endroit où il n'est pas censé écrire, et si il est malin, il peut faire faire n'importe quoi a ton programme.
Si mes souvenirs sont bons, un des premiers vers a s'être propagé sur le net a grande échelle exploitait une faille de sécurité due a une utilisation de gets.
Tout à fait.
(au fait, ici, c'est fr.comp.lang.c++, et en C++, on ferait plutôt ça avec des streams)
Surtout, aussi, avec des std::string, de façon à ce qu'un débordement du buffer soit impossible.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
James Kanze
Fabien LE LEZ wrote:
On Sun, 27 Mar 2005 19:33:06 +0200, Horst Kraemer :
ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets.
gets() est un cas particulier parce qu'il n'est pas possible de programmer correctement avec ; mais on obtient aussi parfois ce genre de comportement avec strcpy() si on ne fait pas les vérifications qui vont bien avant.
En effet. Avec gets(), il est impossible à écrire un programme correct. Avec sprintf(), c'est impossible à écrire un programme correct et maintenable. Avec les autres, il faut prendre ses précautions. (Mais pourquoi g++ râle-t-il pour tmpnam, qui en révanche est la fonction préférée dans certains contextes ?)
Heureusement, depuis, on a inventé le C++, et tout ça n'est plus qu'un mauvais rêve :-)
Ne prends pas tes souhaits pour la réalité:-). Comment disait-il Bjarne : avec C++, c'est beaucoup plus difficile de se tirait dans le pied, mais quand on le fait, c'est toute la jambe qui part.
Mais je suis assez sûr que comme toi et moi, il plaisantait. Le C++ te donne tous les outils nécessaires pour écrire du code propre et robuste, mais il ne t'oblige nullement à t'en servir. On pourrait considérer ça comme un défaut, mais force est de constater que tous les langages que je connais (mais il y a beaucoup que je ne connais pas) qui essaient d'imposer une certaine robestesse finissent par t'empècher d'arriver au même stade de robestesse que le C++ ; il semble qu'il y a toujours quelque chose que l'auteur a oublié, et en t'obligeant à se coller à sa conception de robestesse, il t'empèche de bricoler pour aller au delà.
En fin de compte, la grande force du C++, c'est que l'auteur avait l'humilité de se rendre compte qu'il n'avait pas la solution définitive de tous les problèmes de l'informatique, et de se limiter à nous fournir les outils de créer les solutions. Mais évidemment, la contrapartie, c'est qu'on est libre à ne pas les créer ; si le C++ permet tout ce qu'il y a de mieux dans la programmation, il permet aussi tout ce qu'il ya de pire.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Fabien LE LEZ wrote:
On Sun, 27 Mar 2005 19:33:06 +0200, Horst Kraemer
<h-kraemer@lycos.de>:
ton programme plantera si la chaine est plus longue que le
tampon que tu as réservée pour gets.
gets() est un cas particulier parce qu'il n'est pas possible
de programmer correctement avec ; mais on obtient aussi
parfois ce genre de comportement avec strcpy() si on ne fait
pas les vérifications qui vont bien avant.
En effet. Avec gets(), il est impossible à écrire un programme
correct. Avec sprintf(), c'est impossible à écrire un programme
correct et maintenable. Avec les autres, il faut prendre ses
précautions. (Mais pourquoi g++ râle-t-il pour tmpnam, qui en
révanche est la fonction préférée dans certains contextes ?)
Heureusement, depuis, on a inventé le C++, et tout ça n'est
plus qu'un mauvais rêve :-)
Ne prends pas tes souhaits pour la réalité:-). Comment disait-il
Bjarne : avec C++, c'est beaucoup plus difficile de se tirait
dans le pied, mais quand on le fait, c'est toute la jambe qui
part.
Mais je suis assez sûr que comme toi et moi, il plaisantait. Le
C++ te donne tous les outils nécessaires pour écrire du code
propre et robuste, mais il ne t'oblige nullement à t'en servir.
On pourrait considérer ça comme un défaut, mais force est de
constater que tous les langages que je connais (mais il y a
beaucoup que je ne connais pas) qui essaient d'imposer une
certaine robestesse finissent par t'empècher d'arriver au même
stade de robestesse que le C++ ; il semble qu'il y a toujours
quelque chose que l'auteur a oublié, et en t'obligeant à se
coller à sa conception de robestesse, il t'empèche de bricoler
pour aller au delà.
En fin de compte, la grande force du C++, c'est que l'auteur
avait l'humilité de se rendre compte qu'il n'avait pas la
solution définitive de tous les problèmes de l'informatique, et
de se limiter à nous fournir les outils de créer les solutions.
Mais évidemment, la contrapartie, c'est qu'on est libre à ne pas
les créer ; si le C++ permet tout ce qu'il y a de mieux dans la
programmation, il permet aussi tout ce qu'il ya de pire.
--
James Kanze mailto: james.kanze@free.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
On Sun, 27 Mar 2005 19:33:06 +0200, Horst Kraemer :
ton programme plantera si la chaine est plus longue que le tampon que tu as réservée pour gets.
gets() est un cas particulier parce qu'il n'est pas possible de programmer correctement avec ; mais on obtient aussi parfois ce genre de comportement avec strcpy() si on ne fait pas les vérifications qui vont bien avant.
En effet. Avec gets(), il est impossible à écrire un programme correct. Avec sprintf(), c'est impossible à écrire un programme correct et maintenable. Avec les autres, il faut prendre ses précautions. (Mais pourquoi g++ râle-t-il pour tmpnam, qui en révanche est la fonction préférée dans certains contextes ?)
Heureusement, depuis, on a inventé le C++, et tout ça n'est plus qu'un mauvais rêve :-)
Ne prends pas tes souhaits pour la réalité:-). Comment disait-il Bjarne : avec C++, c'est beaucoup plus difficile de se tirait dans le pied, mais quand on le fait, c'est toute la jambe qui part.
Mais je suis assez sûr que comme toi et moi, il plaisantait. Le C++ te donne tous les outils nécessaires pour écrire du code propre et robuste, mais il ne t'oblige nullement à t'en servir. On pourrait considérer ça comme un défaut, mais force est de constater que tous les langages que je connais (mais il y a beaucoup que je ne connais pas) qui essaient d'imposer une certaine robestesse finissent par t'empècher d'arriver au même stade de robestesse que le C++ ; il semble qu'il y a toujours quelque chose que l'auteur a oublié, et en t'obligeant à se coller à sa conception de robestesse, il t'empèche de bricoler pour aller au delà.
En fin de compte, la grande force du C++, c'est que l'auteur avait l'humilité de se rendre compte qu'il n'avait pas la solution définitive de tous les problèmes de l'informatique, et de se limiter à nous fournir les outils de créer les solutions. Mais évidemment, la contrapartie, c'est qu'on est libre à ne pas les créer ; si le C++ permet tout ce qu'il y a de mieux dans la programmation, il permet aussi tout ce qu'il ya de pire.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Penguin_X
ioops wrote:
Bonjour,
je suis débutant en c++, j'essaie de réaliser un tit programme que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning: the `gets' function is dangerous and should not be used.
Merci pour votre aide.
Pascal
Utilise à la place: cin.getline(tavariablechar,nombre_de_caratceres,'n');
@+
ioops wrote:
Bonjour,
je suis débutant en c++, j'essaie de réaliser un tit programme
que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs
suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main':
: warning: the `gets' function is dangerous and should not be used.
Merci pour votre aide.
Pascal
Utilise à la place: cin.getline(tavariablechar,nombre_de_caratceres,'n');
je suis débutant en c++, j'essaie de réaliser un tit programme que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning: the `gets' function is dangerous and should not be used.
Merci pour votre aide.
Pascal
Si tu veux réellement utiliser gets(), alors compile avec la commande en
plus "Wno-deprecated"
kanze
Penguin_X wrote:
ioops wrote:
je suis débutant en c++, j'essaie de réaliser un tit programme que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning: the `gets' function is dangerous and should not be used.
Merci pour votre aide.
Si tu veux réellement utiliser gets(), alors compile avec la commande en plus "Wno-deprecated"
Si ça marche, c'est vraiment tordu, parce que gets() n'est pas déprécié. (G++ utilise cette option pour gérer les avertissements de <iostream.h> et al. Dans ce cas-là, c'est vraiment justifié, parce que les en-têtes en question ne font pas partie de la norme. Et d'autant plus que le message d'avertissement indique la possibilité d'utiliser cette option pour le supprimer.)
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Penguin_X wrote:
ioops wrote:
je suis débutant en c++, j'essaie de réaliser un tit
programme que m'a filé mon prof sans succès à la
compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message
d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning:
the `gets' function is dangerous and should not be used.
Merci pour votre aide.
Si tu veux réellement utiliser gets(), alors compile avec la
commande en plus "Wno-deprecated"
Si ça marche, c'est vraiment tordu, parce que gets() n'est pas
déprécié. (G++ utilise cette option pour gérer les
avertissements de <iostream.h> et al. Dans ce cas-là, c'est
vraiment justifié, parce que les en-têtes en question ne font
pas partie de la norme. Et d'autant plus que le message
d'avertissement indique la possibilité d'utiliser cette option
pour le supprimer.)
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
je suis débutant en c++, j'essaie de réaliser un tit programme que m'a filé mon prof sans succès à la compilation.
Ce programme utilise la fonction gets.
Lors de la compilation du programme j'obtiens le message d'erreurs suivant :
/tmp/ccp7unRX.o(.text+0x228): In function `main': : warning: the `gets' function is dangerous and should not be used.
Merci pour votre aide.
Si tu veux réellement utiliser gets(), alors compile avec la commande en plus "Wno-deprecated"
Si ça marche, c'est vraiment tordu, parce que gets() n'est pas déprécié. (G++ utilise cette option pour gérer les avertissements de <iostream.h> et al. Dans ce cas-là, c'est vraiment justifié, parce que les en-têtes en question ne font pas partie de la norme. Et d'autant plus que le message d'avertissement indique la possibilité d'utiliser cette option pour le supprimer.)
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34