Debut Programmation C++

Résolu
patrickthierry Messages postés 6 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 2 avril 2010 - 2 avril 2010 à 11:40
patrickthierry Messages postés 6 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 2 avril 2010 - 2 avril 2010 à 19:28
Bonjour,

Je debute en C++, alors je suis les exos du bouquin, mais j'ai beau chercher mon erreur, je ne trouve rien.
Le programme se deroule correctement.
Sauf qu'il n'affiche pas la derniere ligne de code: cout << "\nHors du bloc, dans la fonction myFunc, x vaut : " << x << endl;

Je sais bien que mon erreur doit etre toute simple, mais franchement je ne trouve pas, si quelqu'un pouvait me dire ou elle est ce serait super sympa.

Bon week end de 4 jours a tous!

Voici mon code:
============================================================================================================

// Variable locale.cpp : définit le point d'entrée pour l'application console.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
#include

void myFunc();
int main()
{
using namespace std;
int x = 5;
cout << "\nDans main(), x vaut : " << x;

myFunc();
cout << "\nDe retour dsnd main, x vaut : " << x;
return 0;
}

void myFunc()
{
using namespace std;
int x = 8;
cout << "\nDans myFunc, variable locale x : " << x << endl;

{
cout << "\nDans le bloc de myFunc, x vaut : " << x;
int x = 9;
cout << "\nVariable x tres locale : " << x;
}
cout << "\nHors du bloc, dans la fonction myFunc, x vaut : " << x << endl;

char response;
cin >> response;
}

6 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
2 avril 2010 à 12:20
1) Enfin un débutant qui utilise "using namespace" un peu plus proprement que la moyenne, ça fait plaisir ! Pour plus de détails voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace
2) Oula, ça ressemble plus à du C++.Net managé qu'à du vrai C++.
3) J'ai testé ton programme, et il fonctionne. J'obtiens ceci (sous Linux):
Dans main(), x vaut : 5
Dans myFunc, variable locale x : 8

Dans le bloc de myFunc, x vaut : 8
Variable x tres locale : 9
Hors du bloc, dans la fonction myFunc, x vaut : 8

De retour dsnd main, x vaut : 5


_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
3
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
2 avril 2010 à 12:29
Salut,
utilises-tu visual studio express?
(Parce que il n'utilise pas le compilateur gnu-g++ par défaut)
de plus j'ai l'impression qu'il y a deux main ...
le '_tmain()' et ton 'main'
Essaye de faire un copié/collé de ton code sur dev-C++ (Ide qui utilise un compilateur gnu telecharge le ici ici).
et dis moi ce que tu obtiens lors de la compilation.
Sinon tu as la bonne veille méthodes sur la console :D
tu recopie
# include 
void myFunc(); 
int main() 
{ 
using namespace std; 
int x = 5; 
cout << "\nDans main(), x vaut : " << x; 

myFunc(); 
cout << "\nDe retour dsnd main, x vaut : " << x; 
return 0; 
} 

void myFunc() 
{ 
using namespace std; 
int x = 8; 
cout << "\nDans myFunc, variable locale x : " << x << endl; 

{ 
cout << "\nDans le bloc de myFunc, x vaut : " << x; 
int x = 9; 
cout << "\nVariable x tres locale : " << x; 
} 
cout << "\nHors du bloc, dans la fonction myFunc, x vaut : " << x << endl; 

char response; 
cin >> response; 
}

puis tu fais dans la ligne de commande après t'être mis dans le dossier où est ton main
g++ main.cpp -o test

et dis moi si c'est mieux ainsi
++
3
patrickthierry Messages postés 6 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 2 avril 2010
2 avril 2010 à 12:45
Merci,
Evidemment j'ai pas tout compris au tutorial mais utiliser namespace est source de problemes potentiels, et la franchement je n'en ai pas besoin, donc je vais revenir a la version longue std::

Mais c'est ce qui m'inquiete tu fais un copier coller de mon code et tu n'obtiens pas le meme resultat que moi!
l'informatique reste mysterieuse!!!!!!!!!
3
patrickthierry Messages postés 6 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 2 avril 2010
2 avril 2010 à 12:54
Oui j'utilise visual studio express,;le nt _tmain(int argc, _TCHAR* argv[]) est genere automatiquement a la creation du projet, c'est a chaque fois identique. A la suite de quoi je rentre mon code et jusqu'a present ca marchait.
Merci de ton conseil de changer d'IDE mais mon bouquin de formation (800 pages quand meme) se sert de visual studio express, je ne suis vraiment pas assez a l'aise pour le moment pour jongler entre differents outils, j'essaie de faire du copier coller depuis le bouquin et ca ne marche pas. Je suis assez fier de ma performance!!!!
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
2 avril 2010 à 14:11
Sinon ce que je peux te conseiller c'est de suivre ce qui est écris sur le site du zéro... C'est vraiment super bien expliqué quelque soit ton niveau ..
Bon il faut commencer par le C et enfin tu auras le C++ (je sais que certaines gens disent qu'il faut que cela s'enseigne de manière différentes). Mais si tu sais un peu programmer en C tu pourras te débrouiller pour programmer en C++.

Si tu as des problèmes par rapport à .Net regarde l'aide de visual studio (touche F1) pour commmencer.
Perso je préfère gnu il est tres performant....
3
patrickthierry Messages postés 6 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 2 avril 2010
2 avril 2010 à 19:28
Merci pour ces conseils,
Je vais essayer de progresser
Bonne soiree
0
Rejoignez-nous