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

  FORUM HardWare.fr
  Programmation
  C++

  Probleme avec Dev-C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec Dev-C++

n°1201797
xav92210
Posté le 18-09-2005 à 13:11:02  profilanswer
 

Je suis noob en programmation
 
J'essai d'apprendre avec des sites de programmation et des bouquins
 
Mais le pb c'est que Dev-C++ refuse de me compiler un programme très basic comme un hello world (que j'ai mis dans Dev-C++ directement par copier-coller d'un tuto de programmation C++

Code :
  1. #include <iostream.h>
  2. #include <stdio.h>
  3. void main()
  4. {
  5.     cout<<"Hello World!";
  6.     getchar();
  7. }


 
Cependant j'ai remarqué que si je remplace "void" par "int" ça marche (ça complile mais evidemment, le programme est différent)

Code :
  1. #include <iostream.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.     cout<<"Hello World!";
  6.     getchar();
  7. }


 
et voilà ce que Dev-C++ m'affiche lorsque je compile avec "void" (cliquer sur l'image et recliquer sur l'image agrandie pour que ça soit lisible)
 
http://img154.imageshack.us/img154/2609/sanstitre2yw.th.jpg
 
comment je peux remédier à ce probleme ?


Message édité par xav92210 le 18-09-2005 à 13:11:46
mood
Publicité
Posté le 18-09-2005 à 13:11:02  profilanswer
 

n°1201810
jesus_chri​st
votre nouveau dieu
Posté le 18-09-2005 à 13:37:56  profilanswer
 

ton premier exemple, ce n'est pas du C++.
La fonction "void main()" n'existe pas en C++, il n'existe que "int main()" ou "int main(int argc, char* argv[]).
 
ton tuto de programmation qui te parle de "void main()" est mauvais, trouves-en un autre. "void main" ça marche avec les compilos pas standard comme Visual C++.

n°1201812
jesus_chri​st
votre nouveau dieu
Posté le 18-09-2005 à 13:43:53  profilanswer
 

ah oui, tant que j'y suis : ton tuto, non seulement il est mauvais, mais en plus il est obsolète.
 
Les entetes iostream.h et stdio.h ne doivent pas être utilisés. on utilise <iostream> et <cstdio>. Et encore, cstdio c'est pour mettre de "vieux C" dans ton code, comme ton getchar. C'est une pratique à éviter.
 
Voilà un bon hello world :
 

Code :
  1. #include <iostream>
  2. int main(void)
  3. {
  4.    std::cout << "Hello world !\n";
  5. }


 
pas besoin de return dans le main, c'est optionnel. Avec <iostream>, il faut préciser std:: ou "using namespace std". Pour arreter ton prog le temps de lire ce qui est afficher, mets un breakpoint sur l'accolade fermante. Un breakpoint ça indique à ton debugger (ici dev-c++) de faire une pause, ce n'est pas écrit dans le code. Lit en diago la doc tu verras comment on fait un breakpoint.
 
Ne commence pas en faisant du "debogage au printf et au getchar" c'est une très mauvaise habitude.
 
[edit] : pourquoi le backslash de mon \n ne s'affiche pas ?? Jocebug ?


Message édité par jesus_christ le 18-09-2005 à 13:45:47
n°1201822
xav92210
Posté le 18-09-2005 à 14:13:04  profilanswer
 

je remarque qu'avec la bibliotheque iostream, on ne peut pas utiliser "cin<<" alors qu'avec iostream.h c'est possible
 
comment on fait des input avec iostream ?

n°1201832
jesus_chri​st
votre nouveau dieu
Posté le 18-09-2005 à 14:42:47  profilanswer
 

déjà c'est cin >> et pas cin <<
et puis tous les noms standards comme cout, cin, endl, string... sont dans l'espace de nom std.
 
Un espace de nom c'est comme un lieu où les variables sont visible. On dit pas "Miami", mais "Miami, Florida", on précise. En c++ c'est pareil. cin on connait pas, on précise "std::cin" ce qui veut dire "cin dans std"
 
pour pas avoir à écrire std:: à chaque fois, ecrit "using namespace std;" juste après les #include comme ça ça devient automatique

n°1201841
masklinn
í dag viðrar vel til loftárása
Posté le 18-09-2005 à 15:06:03  profilanswer
 

xav92210 a écrit :

je remarque qu'avec la bibliotheque iostream, on ne peut pas utiliser "cin<<" alors qu'avec iostream.h c'est possible
 
comment on fait des input avec iostream ?


En utilisant <iostream> "cin" (qui fait partie de la standard template library) se trouve dans le namespace (*) "std".
 
Donc il faut préfixer par "std::" pour y accéder => std::cin.
 
Tu peux, si tu le désires et connais les noms (histoire d'éviter les collisions) placer tout le namespace STD dans le namespace courant avec "using namespace std".
 
*: un namespace (ou espace de nommage) est un conteneur abstrait, une boite virtuelle contenant des fonctions ou des variables. L'utilisation de namespaces permet de séparer proprement les différentes bibliothèques par exemple, et d'éviter les collisions (quand deux objets (variables, fonctions, classes) portent le même nom). C'est un contexte quoi, un espace spécifique séparé de tout le reste du langage.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1670292
Adolpho
Posté le 13-01-2008 à 00:55:21  profilanswer
 

Pour ton code essaye:
 
# include <iostream>
# include <stdio.h>
 
using namespace std
 
int main()
{
 
cout << "Hello world" <<endl;
 
return 0
system("PAUSE" )
}

n°1671749
juloss4
Posté le 15-01-2008 à 19:46:09  profilanswer
 

Pour repondre a adlopho, <<system("PAUSE" ) >> se met AVANT <<return 0 >>.
Et il ne faut pas oublier les <<;>> apres chaque ligne...;
donc :
# include <iostream>  
# include <stdio.h>  
 
using namespace std ;
 
int main()  
{  
 
cout << "Hello world" <<endl;  
 
system("PAUSE" ) ;
return 0 ;
}


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

  Probleme avec Dev-C++

 

Sujets relatifs
Probleme de requete et de texte en php [Résolu, euh en fait non]DB designer 4, problème de place
Problème affichage de newsProblème de version d'excel
Gros problème avec les accents avec tinymce (encodage ?)Probleme de header php
Probleme de requeteprobleme avec les include
[RESOLU] Problème avec XmlHttpRequest : marche pas sous IEProbleme de conversion en hexa.
Plus de sujets relatifs à : Probleme avec Dev-C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR