PDA

Afficher la version complète : Aide en C++



AlexFly
16/02/2004, 16h35
Voila, g un petit problème:
je viens de commencer le C++, avec le bouquin "C++ pour les nuls". Ils y conseillent le logiciel GNU C++, mais g pris Dev C++, et j'arrive a faire ce qu'ils disent, pour le moment...
J'ai fait le premier exercice, qui consiste a créer un convertisseur de degrés celsius en degrés fahrenheit.
Je tape le code, g compile, la première fois il me met 36 erreurs, la deuxième fois 0. Il me sort le .exe, l'execute, et là, le programme me demande d'entrer une valeur en degrés celsius. J'entre, j'appuis sur Entrée (comme ecrit dans le bouquin), et là, ms dos se ferme!
D'ou ce la peut t'il venir?

Sinon, auriez vous des conseils a me donner pour ce language? (bouquin bien, site, trucs pour les debutants, logiciels...)

Merci d'avance

@++ et gg

<center><img src=http://membres.lycos.fr/blastxx/newsign.jpg></center>

<center>Les aventuriers du trou perdu (http://www.les-aventuriers-du-trou-perdu.fr.st)<center>

AlexFly
16/02/2004, 16h35
Voila, g un petit problème:
je viens de commencer le C++, avec le bouquin "C++ pour les nuls". Ils y conseillent le logiciel GNU C++, mais g pris Dev C++, et j'arrive a faire ce qu'ils disent, pour le moment...
J'ai fait le premier exercice, qui consiste a créer un convertisseur de degrés celsius en degrés fahrenheit.
Je tape le code, g compile, la première fois il me met 36 erreurs, la deuxième fois 0. Il me sort le .exe, l'execute, et là, le programme me demande d'entrer une valeur en degrés celsius. J'entre, j'appuis sur Entrée (comme ecrit dans le bouquin), et là, ms dos se ferme!
D'ou ce la peut t'il venir?

Sinon, auriez vous des conseils a me donner pour ce language? (bouquin bien, site, trucs pour les debutants, logiciels...)

Merci d'avance

@++ et gg

<center><img src=http://membres.lycos.fr/blastxx/newsign.jpg></center>

<center>Les aventuriers du trou perdu (http://www.les-aventuriers-du-trou-perdu.fr.st)<center>

AlexFly
16/02/2004, 16h44
Bin... ça fait super longtemps que j'en ai pas fait. /i/smilies/16x16_smiley-sad.gif

Fais voir ton listing (si c'est pas trop long) des fois que. /i/smilies/16x16_smiley-wink.gif

Comme ça à froid, je dirai peut-être tentative d'écrire dans une valeur pointée par un pointeur mais non initialisée ? (pitain, grave, j'ai même oublié le vocabulaire /i/smilies/16x16_smiley-surprised.gif )

AlexFly
16/02/2004, 16h46
Salut /i/smilies/16x16_smiley-happy.gif

Je n'y connaît absolument rien en C++, mais j'ai quand même une voie à te suggérer pour régler ton problème:

Je pense que ton programme marche correctement (si tu as bien suivit les instructions y a pas de raisons! /i/smilies/16x16_smiley-wink.gif ), mais le prob c'est qu'une fois le programme terminé, la fenêtre MS-DOS se referme aussitôt, de telle sorte que tu n'as pas le temps de voir le résultat!

En faisant un clic droit sur l'exe en question, puis en faisant "propriétés", tu as normalement toutes les options de programmes MS-DOS. Dans l'onglet "Programme" vérifie que la case "Fermer en quitant" est bien décochée.

Cette marche à suivre est vallable sur Win98, et j'ignore si ces réglages sont au même endroit sous Xp (si c'est ce que tu as), mais ça ne devrait pas être bien différent.

Je pense que ça vient de là. Si c'est dû à ton programme, alors là je ne peut pas t'aider...

http://www.multimania.com/yabbleo/philomafalda.jpg

AlexFly
16/02/2004, 20h54
Oui, ca doit etre ca, mais cette fonction n'existe pas sur XP...
Vous n'auriez pas une solution?

<center><img src=http://membres.lycos.fr/blastxx/newsign.jpg></center>

<center>Les aventuriers du trou perdu (http://www.les-aventuriers-du-trou-perdu.fr.st)<center>

AlexFly
16/02/2004, 21h59
Ben heu, tu sais, en c++, il existe une infinité de façons de faire planter... /i/smilies/16x16_smiley-wink.gif

Si ton code est trop gros pour afficher ici, tu peux faire un débuggage pas à pas :

Tu écris "Test1" en faisant une pause (par exemple en faisant taper sur une touche), si ça s'affiche, c'est que ça marche jusque là, puis "Test2", etc... jusqu'à ce que tu trouves l'endroit où ça cloche. /i/smilies/16x16_smiley-wink.gif

Edit : heu, si c'est juste un problème de fermeture de fenêtre, ben ouvre une fenêtre avec :

Démarrer->Programmes->Accessoires->Invite de commandes

Puis lance ton executable en ligne de commandes...

Message Edited on 02/16/0410:01PM by UrielSeptim

AlexFly
16/02/2004, 22h06
Trés franchement, je ne voit pas vraiment... Je savais que WinXP est faché avec le DOS, mais je ne l'imaginait pas à ce point!

Le seul truc que je voit, c'est de te faire une diquette ou un CD bootable (en y copiant les fichiers systèmes), d'y mettre ton prog et de redémarrer avec ta disquette (ou ton CD), de sorte que tu puisse voir si ton programme marche bien... Mais pour une utilisation à long terme, c'est pas trés pratique! /i/smilies/16x16_smiley-tongue.gif

Y a plus qu'à espérer que quelqu'un qui connaisse XP sur le bout des doigts se pointe et nous éclaire... /i/smilies/16x16_smiley-happy.gif /i/smilies/16x16_smiley-indifferent.gif /i/smilies/16x16_smiley-sad.gif Attendras-tu le Messie longtemps?

Sinon, comme Uriel te le suggère, affiche ton "listing" sur ce thread, il n'est pas exclu que cela puisse venir de ton programme.

... Et j'y pense, puisque c'est ton log de programmation qui crée l'exe, n'y aurai-t-il pas quelque part dans ses menus quelques options conçernant ledit exe? Une sorte de spécification de paramètres par défauts qu'adopterai l'exe une fois créé...

http://www.multimania.com/yabbleo/philomafalda.jpg

AlexFly
16/02/2004, 22h27
Euh... vous parlez dans quelle langue là ?/i/smilies/16x16_smiley-very-happy.gif /i/smilies/16x16_smiley-very-happy.gif /i/smilies/16x16_smiley-tongue.gif /i/smilies/16x16_smiley-wink.gif

<hr color="FBFCBA">
<table border="0" width=100%><tr><td align="center">http://filoo29.chez.tiscali.fr/index_img/Totoro100.gif </td><td align="center">http://filoo29.chez.tiscali.fr/index_img/14052821713f7187b99af39.gif</td> <td align="center">http://filoo29.chez.tiscali.fr/index_img/gwenn-ha-du100.gif </td></tr></table>

<center><font size="2" color="FFFFE5">Le mal n'existe pas: il n'est que l'oubli du bien !</font></center>[b][i]<font size="2">

AlexFly
16/02/2004, 22h33
printf("Bin celle la /i/smilies/16x16_smiley-tongue.gif \n");

Edit : j'avais oublié le ;
à abattre sans sommation /i/smilies/16x16_smiley-very-happy.gif



Message Edited on 02/16/0410:34PM by UrielSeptim

AlexFly
16/02/2004, 22h41
????????????
Gné ???

<hr color="FBFCBA">
<table border="0" width=100%><tr><td align="center">http://filoo29.chez.tiscali.fr/index_img/Totoro100.gif </td><td align="center">http://filoo29.chez.tiscali.fr/index_img/14052821713f7187b99af39.gif</td> <td align="center">http://filoo29.chez.tiscali.fr/index_img/gwenn-ha-du100.gif </td></tr></table>

<center><font size="2" color="FFFFE5">Le mal n'existe pas: il n'est que l'oubli du bien !</font></center>[b][i]<font size="2">

AlexFly
17/02/2004, 08h30
Voila le prog:

//
// Conversion - convertit les températures exprimées en
// degrés Celsius en degrés Fahrenheit:
// Fahrenheit = Celsius * (212 - 32)/100 + 32
//
#include <stdio.h>
#include <iostream.h>
int main(int nNumberofArgs, char* pszArgs[])
{
// entrez la température en degrés Celsius
int nCelsius;
cout << "Entrez la température en degrés Celsius :";
cin >> nCelsius;

// calcul du facteur de conversion des degrés Celsius
// en degrés Fahrenheit
int nFactor;
nFactor = 212 - 32;

// utilisation du facteur de conversion pour convertir
// les degrés Celsius en degrés Fahrenheit
int nFahrenheit;
nFahrenheit = nFactor * nCelsius/100 + 32;

// sortie des résultats:
cout << "Equivalence en degrés Fahrenheit :";
cout << nFahrenheit;


return 0;
}

Si ca peut vous etre utile...
Sinon, g vais voir pour une option dans Dev C++, mais c'est anglais donc voila...

<center><img src=http://membres.lycos.fr/blastxx/newsign.jpg></center>

<center>Les aventuriers du trou perdu (http://www.les-aventuriers-du-trou-perdu.fr.st)<center>

AlexFly
17/02/2004, 10h14
??? Je vois pas trop ce qui cloche.

Déjà, essaye de remplacer le début :

int main(int nNumberofArgs, char* pszArgs[])
par
void main()

(les arguments ne servent à rien)

et vire le "return 0;" de la fin qui ne sert à rien.

Si c'est juste un pb de la fenêtre qui se ferme, tu peux mettre juste à la fin :

cin << char zzz;

AlexFly
17/02/2004, 10h41
J'ai fais ce que tu as dis, mais il ne gobe pas le cin << char zzz;, il me met qu'il y a une erreur...
Sinon, pour les autres trucs, ca change rien...

<center><img src=http://membres.lycos.fr/blastxx/newsign.jpg></center>

<center>Les aventuriers du trou perdu (http://www.les-aventuriers-du-trou-perdu.fr.st)<center>

AlexFly
17/02/2004, 10h46
Lol, je suis un peu à la masse. /i/smilies/16x16_smiley-very-happy.gif

C'est
cin >> char zzz;

Ou si ça marche pas, du beau code propre comme à l'école :

char zzz;
cin >> zzz;

AlexFly
17/02/2004, 11h40
Merci, c'est bien ca, ca marche /i/smilies/16x16_smiley-happy.gif

Sinon, tu ne connaitrais pas des conseils, des sites ou des bouquins bien pour les debutants?

<center><img src=http://membres.lycos.fr/blastxx/newsign.jpg></center>

<center>Les aventuriers du trou perdu (http://www.les-aventuriers-du-trou-perdu.fr.st)<center>

AlexFly
17/02/2004, 12h07
Sorry, mais ça fait un moment que je ne suis plus up to date en C++. /i/smilies/16x16_smiley-sad.gif

En plus, je faisais sourtout du Visual C++