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 :

compilation de mon code hello word!


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    autonome
    Inscrit en
    Octobre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : autonome
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 35
    Points : 18
    Points
    18
    Par défaut compilation de mon code hello word!
    Salut,

    Je me suis telecharger, visual studio et visual studio express 2012 pour commencer mais je ne sais pas comment les utiliser. Bref je veut compilier ma class.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main ()
    {
    cout<<"bonjour" endl << "au revoir" <<;
    return0;
    }

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Salut,

    Ca, ce n'est pas une classe! C'est une fonction! Et, qui plus est, la fonction principale : celle que le système d'exploitation appelle obligatoirement et automatiquement lorsqu'il essaye de lancer une application

    Mais bon, ce n'est que pour ton information générale : il faut vraiment essayer de s'habituer dés le départ à utiliser les bons termes pour désigner les bonnes choses, autrement, les gens ne te comprendront pas (et cette remarque ne voulait qu'attirer ton attention sur ce point )

    Il faut aussi savoir que nous apprécions généralement de connaître les messages d'erreurs émis lors de la compilation. Cela nous permet de nous faire une idée bien précise de ce qui se passe, au lieu d'avoir recours à la technique de la boule de crystale. Il faut dire que cette technique a parfois des ratés

    Je vais donc te donner un deuxième conseil avant de te répondre : aide nous à t'aider. Donnes nous toutes les informations utiles dés le départ, cela nous permettra de cibler beaucoup mieux et beaucoup plus vite nos réponse : Les messages d'erreurs du compilateur sont d'une aide appréciable pour nous donner cette possibilité

    Mais bon, comme je manquais d'informations, je me suis tourné vers ma boule de crystal, et tu as de la chance, elle a bien voulu fonctionner par intermittence . Je crois donc que le compilateur a du se plaindre du fait qu'il ne connaît pas cout ni endl.

    Et c'est sans doute tout à fait normal. Car, à la base, le compilateur ne connait vraiment pas grand choses : à par les type char, short, int, long, long long, float, double et long double, et les versions "signed" et "unsigned des cinq premiers, il ne connait rien! Même pas le flux de sortie standard (et donc encore moins le manipulateur de flux endl), c'est te dire!

    Pour qu'il connaisse le flux de sortie standard cout, il faut faire en sorte qu'il sache qu'il existe. Pour ce faire, il faut inclure le fichier d'en-tête <iostream>.

    La première étape est donc de modifier ton code pour inclure ce fichier sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <iostream>
    int main ()
    {
    cout<<"bonjour" endl << "au revoir" <<;
    return0;
    }
    Mais cela ne sera malheureusement pas suffisant. Parce que tout ce qui est fournit par le standard se trouve dans une espèce de "boite noire" (on parle en fait d'espace de noms ou de namespace en anglais) nommée std.

    Pour pouvoir faire appel à cout, il faut donc dire que c'est le cout qui se trouve spécifiquement dans cette boite noire std, et non celui qui pourrait se trouver "ailleurs". Il en va d'ailleurs de même pour le manipulateur de flux endl

    Pour ce faire, il faut faire précéder cout (et endl, et tout ce que tu voudras utiliser qui soit issu de la bibliothèque standard ) de std::. La deuxième étape consiste donc à faire ce genre de modification dans ton code, qui prendra du coup la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <iostream>
    int main ()
    {
        std::cout<<"bonjour"<< std::endl << "au revoir" <<;
        return0;
    }
    Ah, au fait, ma boule de crystal s'est rallumée d'un seul coup, et elle a été beaucoup plus précise... (quand je te disais qu'elle ne veut bien fonctionner que de temps en temps )

    Tu dois obligatoirement utiliser l'opérateur << entre chaque élément que tu essayes d'envoyer dans cout!
    Il manque cet opérateur entre "bonjour" et "endl" dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout<<"bonjour" endl << "au revoir" <<;
    deviens donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout<<"bonjour"<< endl << "au revoir" <<;
    Du coup, il y a de fortes chances pour que le message ait été totalement différent de ce que je croyais au départ

    Et, je m'en voudrais de terminer sans un dernier petit conseil : le code est beaucoup plus souvent lu et modifié qu'il n'est compilé. Tu dois donc veiller à le rendre le plus facile à lire pour les humains possible. Et je te compte parmi les lecteur potentiels

    Tu devrais donc veiller à faire en sorte que les différents groupes d'instructions soient faciles à repérer. L'une des solutions pour arriver à ce résultat est de décider d'une politique d'indentation (de rajout d'espace pour distinguer un groupe d'instructions imbriqué dans un autre) stricte.

    Par exemple, de rajouter trois (ou quatre, ou huit ou ... ) espace de plus à chaque fois que tu ouvre une accolade.

    Ici, cela n'a pas énormément d'importance, mais tu verras rapidement que cela permet de faciliter énormément la relecture du code

    Ainsi, au lieu d'avoir (code corrigé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main ()
    {
    cout<<"bonjour" endl << "au revoir" <<;
    return0;
    }
    tu aurais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main ()
    {
        cout<<"bonjour" endl << "au revoir" <<;
        return0;
    }
    Les espaces ne seront pas pris en compte par le compilateur, et cela ne changera donc absolument pas la taille de l'exécutable. Mais quel confort de lecture on va gagner
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Ne parviens pas à copier mon code dans Word sans perdre les couleurs
    Par nini_python dans le forum Général Python
    Réponses: 8
    Dernier message: 11/04/2021, 13h08
  2. Eclipse ne compile plus mon code en class
    Par dcvman dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 01/01/2011, 15h23
  3. Réponses: 2
    Dernier message: 31/10/2007, 11h30
  4. afficher un graphique dans word à partir de mon code vba
    Par guysocode dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2005, 15h15

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