Forum Programmation.c++ c++ compile pas sur mandrake 10

Posté par  .
Étiquettes : aucune
0
17
août
2004
bonjour,

alors j'ai un truc que je comprends pas. j'ai toujours fait comme ca et ca marchait mais la... ca marche plus...
donc bout de code simple :

#include
#include
int main (void) {
string s = "bonjour!";
cout<<s;
}


j'essaye de le compiler et pas moyen :

test.cpp: In function `int main()':
test.cpp:4: error: `string' undeclared (first use this function)
test.cpp:4: error: (Each undeclared identifier is reported only once for each function it appears in.)
test.cpp:4: error: syntax error before `=' token
test.cpp:5: error: `cout' undeclared (first use this function)
test.cpp:5: error: `s' undeclared (first use this function)
test.cpp:6:2: warning: no newline at end of file


$ g++ --version
g++ (GCC) 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)

quelqu'un saurait me dire si c'est moi ou si c'est quelque chose qui a change dans gcc?

merci beaucoup.
  • # namespace

    Posté par  . Évalué à 4.

    C'est un truc qui a changé dans gcc.
    Il me semble que tu doives maintenant faire :
    using namespace std;
    • [^] # Re: namespace

      Posté par  . Évalué à 2.

      ouais effectivement c mieux. j'ai pas pris l'habitude de l'utiliser donc forcement...
      merci.
    • [^] # Re: namespace

      Posté par  . Évalué à 0.

      ouais effectivement c mieux. j'ai pas pris l'habitude de l'utiliser donc forcement...
      merci.
    • [^] # Re: namespace

      Posté par  . Évalué à 4.

      Bouh pas bien !
      using namespace std;

      Ca n'engage que moi, mais je pense qu'il vaut mieux explicitement specifier l'espace de nommage (ie: std ) dans tout bout de code C++.
      Ca evite 2-3 bourdes que l'on peut faire (ou faire faire au compilateur).
      Et puis il me semble que c'est une bonne habitude de programmation :
      http://packages.debian.org/unstable/doc/stl-manual(...)
      • [^] # Re: namespace

        Posté par  . Évalué à 1.

        J'ai jamais vraiment programmé en C++ donc forcément ma réponse était bonne mais pas bien.
    • [^] # Re: namespace

      Posté par  . Évalué à 0.

      J'ai la même distribution.

      #include
      using namespace std ;
      main()
      {
      string s = "bonjour!";
      cout << s ;
      }

      fonctionne
      • [^] # Re: namespace

        Posté par  . Évalué à 1.

        iostream entre le signe inférieur et le signe supérieur (apres include)
        a été supprimé dans le message précédant.
  • # Question très bête

    Posté par  (site web personnel) . Évalué à 0.

    La remarque que je vais faire est peut-être stupide mais:

    Est-ce que dans le code que tu compiles tu utilise au moins un fichier *.h ?

    En effet dans ton exemple tu utilise
    #include
    #include

    Ca marcherait mieux avec un truc genre
    #include <iostream.h> (ou #include <stdio.h> pour du c)

    ... on sait jamais :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.