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 :

C++ :error : expected ‘)’ before


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Par défaut C++ :error : expected ‘)’ before
    Bonjour a tous,

    Je suis un super débutant en programmations et j'apprends pour l'instant en autodidacte je vous pris donc de m’excuser si mes questions (présentes ou futures) vous paraissent stupide ou naïve.
    J’ai acheté un livre afin de s’initier à la programmation sous c, c++, c#, java, et PHP. Par hasard j’ai choisie c++. A un moment dans le livre il est demander de crée un programme qui dois afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    a = 3, b = 5
    a*b = 15
    a+b = 8
    J’ai donc écrit la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
    int main(void)
    {
        int n, p;
        int som, pro;
        n =3;
        p =5;
        som=n+p;
        pro=n*p;
        printf ("n =" n, "p =" p,);
        printf ("pro =" pro);
        printf ("som =" som);
    }
    Et voici les message d’erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Line 10 : error : expected ‘)’ before ‘n’
    Line 11 : error : expected ‘)’ before ‘pro’
    Line 12 : error : expected ‘)’ before ‘som’
    Merci d’avance pour votre aide et si j’ai fait une ou plusieurs erreurs dans la présentation du message dite le moi afin de ne plus les refaire.

    Benjamin

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 032
    Billets dans le blog
    12
    Par défaut
    Tu te trompes en fait dans ton utilisation de printf.
    Si tu veux un comportement proche de ce que tu as écrit, il faut utiliser std::cout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <iostream>
    int main(void)
    {
        int n, p;
        int som, pro;
        n =3;
        p =5;
        som=n+p;
        pro=n*p;
        std::cout << "n=" << n << " p=" << p << std::endl;
        std::cout << "pro=" << pro << std::endl;
        std::cout << "som=" << som << std::endl;
    }
    De plus ça te permettra d'utiliser la méthode C++ (iostream) plutôt que la méthode C (stdio.h).
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      printf ("n =" n, "p =" p,);
    De plus, en C, le code correct est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("n =%d , p =%d", n, p);

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    Bonjour,

    Le code que tu as posté est effectivement écrit en langage C, d'où l'utilisation du printf qui permet de faire de l'affichage dans la sortie standard par défaut ici (l'écran de ton pc).

    Voici la version de ton code en langage C corrigé et qui te donnera le même résultat que la version dragonjoker59 écrit en langage C++ :

    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
    #include <stdio.h>
    int main(void)
    {
        int n, p;
        int som, pro;
        n =3;
        p =5;
        som=n+p;
        pro=n*p;
        printf ("n =%d et p =%d" n, p);
        printf("\n");
        printf ("pro =%d" pro);
        printf("\n");
        printf ("som =%d" som);
     
       system("pause"); //fonction windows permettant de faire une pause et donc de pouvoir visualiser l’exécution de code.
    }
    Les %d permettent en C de définir le type de tes variables pendant l'affichage.

    Exemple : %d -> affichage pour des variables de type int.
    %f -> affichage pour des variables de type float.
    %c -> affichage pour des variables de type char.
    \n -> pour faire des saut de lignes à l'affichage.

    J'espére que mes explications sont claires et te seront utiles.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Par défaut merci à tous
    Merci beaucoup grasse à vous j’ai compris pas mal du truc (en particulier que je ne programmais pas en C++ mais en C, ou du moins que j’essai ^^http://www.developpez.net/forums/ima...n_rolleyes.gif)
    Quand j’ai récrie mon programme en utilisant la fonction
    #include <iostream>
    using namespace std ;

    Mon compilateur (j’utilise code::blocks 10.5) il m’affiche le message suivant :
    error iostream : no such file or directory.
    Pouvez-vous m’expliquer l’erreur ou où trouver la réponse sur le site merci

  6. #6
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    voici un lien qui va mieux qui l'explication du using namespace std ;
    http://cpp.developpez.com/faq/cpp/?p...PACE_using_std

    Je te conseille de faire un tour ici pour voir les autres outils qui existe pour du développement http://cpp.developpez.com/outils/

    - Pour développer je te conseillerai comme IDE eclipse ou Netbeans ils sont gratiuts.

    cordialement
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Moi je te déconseille netbeans et eclipse, qui sont, à la base, fait pour programmer en java (et en plus ils sont écrits en java donc... non je ne dirais rien je ne suis pas un troll )
    Personnellement, je conseille Code::Blocks (windows/linux) et Visual Studio Express (seulement windows), qui sont également gratuits.

    Si te renvoie une erreur, cela signifie que ton IDE est mal installé/configuré.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Par défaut ça marche po
    J’ai changé l’extension du programme (de .c à .cpp) et cette fois il m’affiche pour la ligne de

    Code :
    10 : cout << "n=" << n << "p=" << p << endl;

    L’erreur suivante :
    line 10: error : ‘cout’ was not declared in this scope
    merci de votre aide^^

  9. #9
    Membre chevronné
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Par défaut
    Ton problème vient du fait que cout et std appartiennent a la bibliothèque standard, et que la plupart du temps, les bibliothèques ont leur propre espace de nommage (ce qui permet d’éviter que tes fonctions aient le même nom que les leurs).
    Il faut soit mettre std::cout et std::endl, soit mettre "using namespace std" au début de ton programme.

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Par défaut
    Citation Envoyé par math_lab Voir le message
    Ton problème vient du fait que cout et std appartiennent a la bibliothèque standard, et que la plupart du temps, les bibliothèques ont leur propre espace de nommage (ce qui permet d’éviter que tes fonctions aient le même nom que les leurs).
    Il faut soit mettre std::cout et std::endl, soit mettre "using namespace std" au début de ton programme.
    ou encore

    using std::cout;
    using std::endl;

    surtout si on ne se sert que de ces 2 là

Discussions similaires

  1. error: expected ']' before ';' token
    Par bertry dans le forum Débuter
    Réponses: 3
    Dernier message: 27/03/2015, 10h13
  2. error: expected ')' before '*' token
    Par imou222 dans le forum C
    Réponses: 3
    Dernier message: 08/08/2013, 12h58
  3. Réponses: 4
    Dernier message: 14/04/2010, 09h42
  4. Réponses: 2
    Dernier message: 17/12/2009, 02h11

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