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 :

pister fonction


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut pister fonction
    bonjour à tous,
    J'ai créé des fonctions.Mais je ne sais pas quand elles sont utilisées.
    Je place au début cout<<Fcxyz<<endl; c'est basique.
    J'ai pensé utiliser cerr en créant une fausse erreur mais je n'arrive à rien.
    Une autre solution serait de créer ou faire appel à qq chose nommé bizare(!)qui appellerai le nom de la fonction,et là je ne trouve rien.
    Avez-vous une idée?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    FcXyz(a,b,c)
    cout<<"[FcXyz]"<<endl;
    cerr?????????????
    qqchose appellé bizare(!) qui appelle FcXyz(a,b,c)
    et l'inscrit dans un cout<<bizare<<endl;
    Si çà existe en C++ je prends.
    Merci pour vos suggestions.
    Sen.

  2. #2
    Membre émérite Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Par défaut
    Bonjour.
    Je ne sais pas s'il existe un moyen « standard » de le faire, je l'ai toujours fait « à la main »... ()

    Citation Envoyé par senvedgi Voir le message
    J'ai pensé utiliser cerr en créant une fausse erreur mais je n'arrive à rien.
    Et pourquoi veux-tu créer une fausse erreur ?
    Les flux s'utilisent tous de la même manière, c'est le programmeur qui décide quel flux utiliser.

    Le flux lié à la sortie d'erreur standard n'est jamais utilisé automatiquement.
    C'est juste que lorsque l'on rencontre une erreur, et que l'on décide de prévenir l'utilisateur, on écrit généralement un message d'erreur sur la sortie d'erreur standard ; mais ça aurait très bien pu être sur la sortie standard, ou même dans un fichier de log.

    Pour résumer, si tu veux utiliser std::cerr, tu peux le faire exactement comme si tu avais utilisé std::cout.

  3. #3
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    Mais c'est bien sûr!Suis-je bête!J'avais cherché une solution compliquée...

    Mais,il y a un mais,dans ma question:c'est comment inscrire à la suite de cerr<< quelque chose qui reprend le nom de la fonction sans avoir à ré-écrire
    son nom?
    Ex:cerr<<bizare<<endl; bizare étant une variable que je ne connais pas encore si elle existe ou à créer.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 56
    Par défaut
    salut,

    Pour mettre le nom de la fonction tu as __func__ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cerr << __func__ << endl;
    En tout cas, ca ne génère pas d'erreur avec g++ pour moi.

  5. #5
    Membre émérite Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Par défaut
    Citation Envoyé par senvedgi Voir le message
    comment inscrire à la suite de cerr<< quelque chose qui reprend le nom de la fonction sans avoir à ré-écrire
    son nom?
    Tu peux utiliser la constante magique __func__ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void foo()
    {
        std::cerr << "Entrée dans la fonction « " << __func__ << " »..." << std::endl;
    }
    affichera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Entrée dans la fonction « foo »...

    Citation Envoyé par senvedgi Voir le message
    Ex:cerr<<bizare<<endl; bizare étant une variable que je ne connais pas encore si elle existe ou à créer.
    Si une variable n'existe pas encore, i.e. n'a pas été déclarée, tu ne peux pas l'utiliser.
    Et il faut éviter d'utiliser une variable qui n'a pas été initialisée (i.e. qui a été déclarée mais à laquelle on n'a pas donné de valeur).

  6. #6
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    PARFAIT!!!
    C'est ce que je cherche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    string FcXyz(a,b,c)
    {
    cerr<<"Fc ut.:"<<__func__<<endl;
    //...
    //...
    }
     
    //A l'exécution on obtient:
     
    Fc ut.:FcXyz
    placé SOUS l'accolade ouvrante {
    cette ligne répond totalement à mon souhait.
    Merci à TOUS dont Steph_ng8
    A+++ pour une question soit idiote soit extraordinaire.
    Sen.

  7. #7
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    __func__ n'est pas standard. Booost definie un BOOST_FUNCTION qui se charge de faire le travail correctement en fonction de la plateforme

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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