IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Fonction gets


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 12
    Par défaut Fonction gets
    Bonjour.

    Je suis étudiant en informatique et j'apprends actuellement le c++. Je code sur code blocks ou visual studio 2015.
    Voilà mon problème. Je suis en train de faire des tests pour les fonctions liés aux chaines de caractères mais lorsque j'utilise
    gets(nom_de_ma_chaine_);
    Code blocks me dit que gets n'est pas déclaré alors que j'ai inclus iostream, stdio.h, string.h et cstring.
    Visual studio me dit que gets est introuvable alors que j'ai inclus les mêmes bibliothèques.

    Si quelqu'un connait mon problème, je vous serai reconnaissant de me l'expliquer.

    Cordialement,

    Ilan.

  2. #2
    Membre chevronné Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Par défaut
    Bonjour,

    gets est une fonction C, pas C++
    Elle est incluse avec le fichier cstdio.
    Elle se trouve dans le namespace std.
    Elle est dangereuse à utiliser parce que tu ne pas te protéger contre un buffer overflow.

    Tu devrais apprendre plutot les fonctions C++ qui font le même travail, souvent de façon plus simple ( getline, la classe istream et ses dérivées, etc.).

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 12
    Par défaut
    D'abord, merci pour ta rapidité de réponse.
    Ensuite, je veux bien mais j'ai partiel demain et je dois utiliser ces fonctions précisément d'où mon problème.

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    La réponse à ton problème, c'est "n'utilise pas gets".
    gets est fausse, mauvaise, dangereuse.

    gets est dépréciée
    gets est même supprimé de la norme depuis C++11.
    gets n'est même plus implémenté dans certaines bibliothèques standards.

    Il y a plusieurs alternatives, dont std::getline(std::istream&, std::string&, delimiter).

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 12
    Par défaut
    Oui mais je ne sais pas pourquoi mais la politique de l'école est d'utiliser ces fonctions "vieillotes" donc si j'utilise autre chose que ça, j'ai pas les points. De plus, les énoncés seront pleines de gets et autres.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 464
    Par défaut
    Si quelqu'un connait mon problème, je vous serai reconnaissant de me l'expliquer.
    Avec les explications ici et celles que t'as eu sur OCR, on peut résumer que ton problème initial, c'est que tes compilateurs sont "trop" récents.
    Voili, voilou.

  7. #7
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Alors utilise fgets sur stdin. C'est équivalent à gets, sauf que tu disposes d'un argument pour indiquer la taille du buffer.
    Il suffit alors de parler à ton professeur, ou de mettre un commentaire dans ton code rappelant que gets est dangereuse.
    Par exemple, en citant la page de cppreference à ce sujet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/03/2007, 02h13
  2. fonction get http ?
    Par Juho06 dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/03/2007, 20h11
  3. HashMap et la fonction get
    Par myspirou dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 09/03/2007, 00h57
  4. pourquoi mettre en inline une fonction get.. ?
    Par superC dans le forum C++
    Réponses: 4
    Dernier message: 25/02/2007, 19h35
  5. Fonction Get() renvoyant les mauvaises valeurs
    Par jairbubbles dans le forum XML
    Réponses: 1
    Dernier message: 20/11/2006, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo