Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5155 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Je ne comprend pas tout... Une petite explication serait sympathique.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Je ne comprend pas tout... Une petite explication serait sympathique.

n°1394542
Willits
La réponse est 42
Posté le 25-06-2006 à 18:25:12  profilanswer
 

Salut à tous,
 
Je commence sérieusement le C++, et là j'ai un retour de g++ qui me trouble moi en tant que débutant. (le problème avec moi c'est que je code en très haut niveau depuis 7 ans (j'ai commencé jeune la prog), mais je ne me suis jamais attaqué au bas niveau, donc si il y a des choses qui ne se font pas en C++, dite le moi (au niveau du code))).
 
Voilà, donc je crée mon premier "programme", ce programme est censé retourner les résultats de la ligne de commande.
 
Voici mon code :
 

Code :
  1. #include <iostream.h>
  2. int main(int argc, char *argv[])
  3. {
  4. int i;
  5. cout << "Nombre d'argument : " << argc << "\n";
  6. for (i=0; i<argc; i++)
  7.  cout << "Argument " << i << " : " << argv[i] << "\n" ;
  8. return 0;
  9. }


 
Ce programme "fonctionne" (il y a une petite erreur que je détaillerai à la fin de ce topic), mais g++ me sort ce warning lors de la compilation :
 

Citation :

damien@White-Side:~/Documents/C++> g++ hello.cpp
In file included from /usr/include/c++/4.1.0/backward/iostream.h:31,
                 from hello.cpp:1:
/usr/include/c++/4.1.0/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.


 
Voilà, donc comme je ne pense pas être bête, j'ai fait ce que me dit le message, je remplace <iostream.h> par <iostream>,
mais g++ me sort ça :

Citation :

damien@White-Side:~/Documents/C++> g++ hello.cpp
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:6: error: ‘cout’ was not declared in this scope


 
Voilà, donc maintenant je ne comprend plus rien, et j'aurai besoin d'une petite aide pour comprendre celà.
 
Sinon, une autre chose étrange (pour moi) :
 
Mon programme (avec <iostream.h> et pas <iostream> ) me retourne celà :

Citation :

damien@White-Side:~/Documents/C++> ./hello arg1 arg2
Nombre d'argument : 3
Argument 0 : ./helloArgument 1 : arg1Argument 2 : arg2


 
Mon soucis là est que j'ai mis pourtant dans le code un "\n", mais il n'y a aucun saut de ligne effectué, pourquoi ?
 
Voilà, je vous remercie.
 
Willits

mood
Publicité
Posté le 25-06-2006 à 18:25:12  profilanswer
 

n°1394543
caddie
Posté le 25-06-2006 à 18:28:24  profilanswer
 

tu dois faire std::cout

n°1394546
Willits
La réponse est 42
Posté le 25-06-2006 à 18:32:20  profilanswer
 

Je te remercie caddie, pour std::cout et <iostream>.
 
Mais il reste encore le problème des retours de ligne.

n°1394549
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2006 à 18:35:08  profilanswer
 

Willits a écrit :


 
Mon soucis là est que j'ai mis pourtant dans le code un "\n", mais il n'y a aucun saut de ligne effectué, pourquoi ?
 
Voilà, je vous remercie.
 
Willits


 
std::cout << "Nombre d'argument : " << argc << std::endl;


---------------
J'ai un string dans l'array (Paris Hilton)
n°1394553
Willits
La réponse est 42
Posté le 25-06-2006 à 18:39:27  profilanswer
 

En fait, si je comprend bien, la différence (au niveau du simple programmeur) entre <iostream.h> et <iostream> ce situe dans le std:: (si je comprend toute les fonctions de <iostream> doivent être invoqué avec le std:: devant)
 
Que veux dire le std:: ?
 
Edit : (oubliez l'edit (si vous l'avez lus), je suis juste un crétin...  :pfff: )

Message cité 1 fois
Message édité par Willits le 25-06-2006 à 18:50:56
n°1394576
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-06-2006 à 19:15:31  profilanswer
 

Willits a écrit :

En fait, si je comprend bien, la différence (au niveau du simple programmeur) entre <iostream.h> et <iostream> ce situe dans le std:: (si je comprend toute les fonctions de <iostream> doivent être invoqué avec le std:: devant)
 
Que veux dire le std:: ?
 
Edit : (oubliez l'edit (si vous l'avez lus), je suis juste un crétin...  :pfff: )


<iostream.h> en C++, tu l'oublies, comme la quasi totalité des entêtes .h. les seuls entêtes valables en C++ sont ceux sans le .h
le std:: signifie que tu utilises les classes du namespace std. en C++, la notion de namespace est utilisée pour éviter les collisions de noms entre classes. ainsi tu peux avoir 2 classes nommées "toto", mais dans un namespace différent. la STL regroupe toutes ses classes dans le namespace std.
 
pour utiliser des objets d'un namespace, soit tu fais préfixer l'objet par le nom du namespace:: (std::), soit tu ajoutes la ligne suivante en début de programme :  
 
using namespace std;
 
comme ça, tu n'auras plus besoin de préfixer les objets de la STL par std::


Message édité par Harkonnen le 25-06-2006 à 19:15:46

---------------
J'ai un string dans l'array (Paris Hilton)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Je ne comprend pas tout... Une petite explication serait sympathique.

 

Sujets relatifs
Problème avec une petite application RMI en javaJe comprend pas pourquoi...
petite modif pour menu verti gauchePHP 5 : Donnez moi une petite aide SVP...
Petite question sur les tris de tableauBesoin d'explication sur un 3ds loader (opengl)
Petite manipulation flash Svp ?[.net c++] explication sur LPVOID
[.net c++] explication sur la fonction CloseHandle[.net c++] besoin d'explication sur GetOverlappedResult
Plus de sujets relatifs à : Je ne comprend pas tout... Une petite explication serait sympathique.


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)