Je passe du C au C++, et j'ai un petit probl=E8me avec un de mes
programmes.
A la compilation il n'y a pas d'erreur, mais le terminal s'ouvre s'en
rien afficher. Comme si il etait buger. Je ne peux que le fermer.
J'utiliser VS 2005.
D=E9sole pour la longeur du message. Merci d'avance a ceux qui auront le
courage de m'aider.
Cordialement P.
Voici les sortie de la compilation :
'FuzzyLib.exe' : Charg=E9 'C:\PowerDEVS\Atomics\MyModel\FuzzyLib\debug
\FuzzyLib.exe', Les symboles ont =E9t=E9 charg=E9s.
'FuzzyLib.exe' : Charg=E9 'C:\WINDOWS\system32\ntdll.dll', Aucun symbole
n'a =E9t=E9 charg=E9.
'FuzzyLib.exe' : Charg=E9 'C:\WINDOWS\system32\kernel32.dll', Aucun
symbole n'a =E9t=E9 charg=E9.
'FuzzyLib.exe' : Charg=E9 'C:\WINDOWS\WinSxS
\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-
ww_f75eb16c\msvcp80d.dll', Les symboles ont =E9t=E9 charg=E9s.
'FuzzyLib.exe' : Charg=E9 'C:\WINDOWS\WinSxS
\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-
ww_f75eb16c\msvcr80d.dll', Les symboles ont =E9t=E9 charg=E9s.
'FuzzyLib.exe' : Charg=E9 'C:\WINDOWS\system32\msvcrt.dll', Aucun
symbole n'a =E9t=E9 charg=E9.
Le programme '[1204] FuzzyLib.exe: Natif' s'est arr=EAt=E9 avec le code 0
(0x0).
La derni=E8re ligne c'est quand je ferme le terminal.
voici la pile d'apl :
FuzzyLib.exe!wmain(int argc=3D1, wchar_t * * argv=3D0x00355b30) Ligne 6 C+
+
FuzzyLib.exe!__tmainCRTStartup() Ligne 583 + 0x19 octets C
FuzzyLib.exe!wmainCRTStartup() Ligne 403 C
kernel32.dll!7c816fd7()
[Les frames ci-dessous sont peut-=EAtre incorrects et/ou manquants,
aucun symbole charg=E9 pour kernel32.dll]
Voici le code :
//prog de test :
/
***************************************************************************=
*****/
#include "FuzzyLib.h"
int _tmain(int argc, _TCHAR* argv[])
{
cout << "----- TEST -----" ;
FuzzyLib *A =3D new FuzzyLib(2,2,1,3);
FuzzyLib *B =3D new FuzzyLib(4,4,2,6);
FuzzyLib *res =3D new FuzzyLib();
cout << "affichage de A";
A->printFuzzyLib();
cout << "affichage de B";
B->printFuzzyLib();
*res =3D A->fuzzy_ADD(*B);
cout << "affichage de A+B";
res->printFuzzyLib();
system("PAUSE");
return 0;
}
/
***************************************************************************=
**/
// Classe :
/
***************************************************************************=
**/
#define WIN32_LEAN_AND_MEAN // Exclure les en-t=EAtes Windows rarement
utilis=E9s
#include <stdio.h>
#include <tchar.h>
#include <iostream>
using namespace std;
#pragma once
class FuzzyLib
{
private:
// Variables de classe
double lambda; // valeur en y de la courbe comprise entre 0 et 1
double a,b; // valeur les plus possiblee en x pour lambda =3D 1
double alpha, beta; // limite infereieur et superieur de la courbe
pour lambda =3D 0
/
***************************************************************************=
**************/
//Methode de classe
/
***************************************************************************=
***************/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Cyrille
Bonjour,
Je passe du C au C++, et j'ai un petit problème avec un de mes programmes. A la compilation il n'y a pas d'erreur, mais le terminal s'ouvre s'en rien afficher. Comme si il etait buger. Je ne peux que le fermer. J'utiliser VS 2005.
Désole pour la longeur du message. Merci d'avance a ceux qui auront le courage de m'aider.
Le programme compilé chez moi marche très bien: ça compile et affiche quelque chose. Il n'y a aucun retour à la ligne par contre, je doute que ça soit voulu.
L'output n'est cependant jamais flushé, je ne sais pas si ça a un rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la fin, juste avant l'appel à system, pour être sûr.
-- http://www.voteragauche.org/
Bonjour,
Je passe du C au C++, et j'ai un petit problème avec un de mes
programmes.
A la compilation il n'y a pas d'erreur, mais le terminal s'ouvre s'en
rien afficher. Comme si il etait buger. Je ne peux que le fermer.
J'utiliser VS 2005.
Désole pour la longeur du message. Merci d'avance a ceux qui auront le
courage de m'aider.
Le programme compilé chez moi marche très bien: ça compile et affiche
quelque chose. Il n'y a aucun retour à la ligne par contre, je doute que
ça soit voulu.
L'output n'est cependant jamais flushé, je ne sais pas si ça a un
rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la
fin, juste avant l'appel à system, pour être sûr.
Je passe du C au C++, et j'ai un petit problème avec un de mes programmes. A la compilation il n'y a pas d'erreur, mais le terminal s'ouvre s'en rien afficher. Comme si il etait buger. Je ne peux que le fermer. J'utiliser VS 2005.
Désole pour la longeur du message. Merci d'avance a ceux qui auront le courage de m'aider.
Le programme compilé chez moi marche très bien: ça compile et affiche quelque chose. Il n'y a aucun retour à la ligne par contre, je doute que ça soit voulu.
L'output n'est cependant jamais flushé, je ne sais pas si ça a un rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la fin, juste avant l'appel à system, pour être sûr.
-- http://www.voteragauche.org/
peracciu
L'output n'est cependant jamais flushé, je ne sais pas si ça a un rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la fin, juste avant l'appel à system, pour être sûr.
Merci pour ta reponse, tu parles du cout (surchargé) ou du cout du programme de test ? Sinon je vais essayer, a quoi sert "flush" ?
Pour le retour a la ligne je peux ajouter un n dans les cout !!! non ?
Encore merci, j'espère que ca va marcher chez moi.
L'output n'est cependant jamais flushé, je ne sais pas si ça a un
rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la
fin, juste avant l'appel à system, pour être sûr.
Merci pour ta reponse, tu parles du cout (surchargé) ou du cout du
programme de test ?
Sinon je vais essayer, a quoi sert "flush" ?
Pour le retour a la ligne je peux ajouter un n dans les cout !!!
non ?
Encore merci, j'espère que ca va marcher chez moi.
L'output n'est cependant jamais flushé, je ne sais pas si ça a un rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la fin, juste avant l'appel à system, pour être sûr.
Merci pour ta reponse, tu parles du cout (surchargé) ou du cout du programme de test ? Sinon je vais essayer, a quoi sert "flush" ?
Pour le retour a la ligne je peux ajouter un n dans les cout !!! non ?
Encore merci, j'espère que ca va marcher chez moi.
peracciu
L'output n'est cependant jamais flushé, je ne sais pas si ça a un rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la fin, juste avant l'appel à system, pour être sûr.
Merci pour ta reponse, tu parles du cout (surchargé) ou du cout du programme de test ?
Pour le retour a la ligne je peux ajouter un n dans les cout !!! non ?
/******** Methode de Classe ***********/ cout << " [a = " << this->a << ", b = " << this->b << ", alpha = " << this->alpha << ", beta = " << this->beta << "]" << endl; /********************************************/ /********* Prog de TEST ***************/ cout << "----- TEST -----n" << flush ; FuzzyLib *A = new FuzzyLib(2,2,1,3); FuzzyLib *B = new FuzzyLib(4,4,2,6); FuzzyLib *res = new FuzzyLib(); cout << "affichage de An"; A->printFuzzyLib(); cout << "affichage de Bn"; B->printFuzzyLib(); *res = A->fuzzy_ADD(*B); cout << "affichage de A+Bn"; res->printFuzzyLib();
Encore merci pour ta réponse, mais chez moi ça marche pas. Meme si je mets une partie du main en commentaire, ca compile, le terminal se lance, mais rien ne s'affiche. J'ai un retour sur VS avec un fleche jaune sur la première ligne du code du prog de test, il y a marqué : "Ceci est la prochaine instruction qui sera executée, pour changer l'instruction a executer faites glisser la fleche. :) Les conséquence de cette opération sont imprévisibles."
J'ai beau faire glisser la fleche rien de se passe !!!
L'output n'est cependant jamais flushé, je ne sais pas si ça a un
rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la
fin, juste avant l'appel à system, pour être sûr.
Merci pour ta reponse, tu parles du cout (surchargé) ou du cout du
programme de test ?
Pour le retour a la ligne je peux ajouter un n dans les cout !!!
non ?
/******** Methode de Classe ***********/
cout << " [a = " << this->a
<< ", b = " << this->b
<< ", alpha = " << this->alpha
<< ", beta = " << this->beta
<< "]"
<< endl;
/********************************************/
/********* Prog de TEST ***************/
cout << "----- TEST -----n" << flush ;
FuzzyLib *A = new FuzzyLib(2,2,1,3);
FuzzyLib *B = new FuzzyLib(4,4,2,6);
FuzzyLib *res = new FuzzyLib();
cout << "affichage de An";
A->printFuzzyLib();
cout << "affichage de Bn";
B->printFuzzyLib();
*res = A->fuzzy_ADD(*B);
cout << "affichage de A+Bn";
res->printFuzzyLib();
Encore merci pour ta réponse, mais chez moi ça marche pas.
Meme si je mets une partie du main en commentaire, ca compile, le
terminal se lance, mais rien ne s'affiche.
J'ai un retour sur VS avec un fleche jaune sur la première ligne du
code du prog de test, il y a marqué :
"Ceci est la prochaine instruction qui sera executée, pour changer
l'instruction a executer faites glisser la fleche. :) Les conséquence
de cette opération sont imprévisibles."
J'ai beau faire glisser la fleche rien de se passe !!!
L'output n'est cependant jamais flushé, je ne sais pas si ça a un rapport, mais autant mettre "cout << flush;" ou "cout << endl;" à la fin, juste avant l'appel à system, pour être sûr.
Merci pour ta reponse, tu parles du cout (surchargé) ou du cout du programme de test ?
Pour le retour a la ligne je peux ajouter un n dans les cout !!! non ?
/******** Methode de Classe ***********/ cout << " [a = " << this->a << ", b = " << this->b << ", alpha = " << this->alpha << ", beta = " << this->beta << "]" << endl; /********************************************/ /********* Prog de TEST ***************/ cout << "----- TEST -----n" << flush ; FuzzyLib *A = new FuzzyLib(2,2,1,3); FuzzyLib *B = new FuzzyLib(4,4,2,6); FuzzyLib *res = new FuzzyLib(); cout << "affichage de An"; A->printFuzzyLib(); cout << "affichage de Bn"; B->printFuzzyLib(); *res = A->fuzzy_ADD(*B); cout << "affichage de A+Bn"; res->printFuzzyLib();
Encore merci pour ta réponse, mais chez moi ça marche pas. Meme si je mets une partie du main en commentaire, ca compile, le terminal se lance, mais rien ne s'affiche. J'ai un retour sur VS avec un fleche jaune sur la première ligne du code du prog de test, il y a marqué : "Ceci est la prochaine instruction qui sera executée, pour changer l'instruction a executer faites glisser la fleche. :) Les conséquence de cette opération sont imprévisibles."
J'ai beau faire glisser la fleche rien de se passe !!!
peracciu
C'est bon ca marche, mais que sous DevC++. Sinon si quelqu'un a le courage de regarder mon code et de me donner des conseils je suis preneur, merci d'avance.
C'est bon ca marche, mais que sous DevC++.
Sinon si quelqu'un a le courage de regarder mon code et de me donner
des conseils je suis preneur, merci d'avance.
C'est bon ca marche, mais que sous DevC++. Sinon si quelqu'un a le courage de regarder mon code et de me donner des conseils je suis preneur, merci d'avance.
alexandre
"peracciu" a écrit dans le message de news:
C'est bon ca marche, mais que sous DevC++. Sinon si quelqu'un a le courage de regarder mon code et de me donner des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant ton sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser regarder la sortie de la console ? Dans ce cas, autant mettre un point d'arret (dans ton EDI) sru le return 0
"peracciu" <peracciu@gmail.com> a écrit dans le message de
news:1174931424.218609.247400@p77g2000hsh.googlegroups.com...
C'est bon ca marche, mais que sous DevC++.
Sinon si quelqu'un a le courage de regarder mon code et de me donner
des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant ton
sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser
regarder la sortie de la console ? Dans ce cas, autant mettre un point
d'arret (dans ton EDI) sru le return 0
C'est bon ca marche, mais que sous DevC++. Sinon si quelqu'un a le courage de regarder mon code et de me donner des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant ton sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser regarder la sortie de la console ? Dans ce cas, autant mettre un point d'arret (dans ton EDI) sru le return 0
peracciu
On 27 mar, 16:40, "alexandre" wrote:
"peracciu" a écrit dans le message denews:11749314
C'est bon ca marche, mais que sous DevC++. Sinon si quelqu'un a le courage de regarder mon code et de me donner des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant t on sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser regarder la sortie de la console ? Dans ce cas, autant mettre un point d'arret (dans ton EDI) sru le return 0
Merci pour ta reponse, le systeme("pause"); en fait sert a garder le terminal ouvert sinon il se ferme sans me laisser voir les sorties
On 27 mar, 16:40, "alexandre" <alexandre_21...@hotmail.fr> wrote:
"peracciu" <perac...@gmail.com> a écrit dans le message denews:11749314 24.218609.247400@p77g2000hsh.googlegroups.com...
C'est bon ca marche, mais que sous DevC++.
Sinon si quelqu'un a le courage de regarder mon code et de me donner
des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant t on
sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser
regarder la sortie de la console ? Dans ce cas, autant mettre un point
d'arret (dans ton EDI) sru le return 0
Merci pour ta reponse, le systeme("pause"); en fait sert a garder le
terminal ouvert sinon il se ferme sans me laisser voir les sorties
"peracciu" a écrit dans le message denews:11749314
C'est bon ca marche, mais que sous DevC++. Sinon si quelqu'un a le courage de regarder mon code et de me donner des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant t on sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser regarder la sortie de la console ? Dans ce cas, autant mettre un point d'arret (dans ton EDI) sru le return 0
Merci pour ta reponse, le systeme("pause"); en fait sert a garder le terminal ouvert sinon il se ferme sans me laisser voir les sorties
Sylvain
peracciu wrote on 26/03/2007 10:49:
Encore merci pour ta réponse, mais chez moi ça marche pas. Meme si je mets une partie du main en commentaire, ca compile, le terminal se lance, mais rien ne s'affiche.
normal d'après ce que tu indiques après ton programme est stoppé, i.e. ne s'exécute PAS.
J'ai un retour sur VS avec un fleche jaune sur la première ligne du code du prog de test, il y a marqué : "Ceci est la prochaine instruction qui sera executée, pour changer l'instruction a executer faites glisser la fleche. :) Les conséquence de cette opération sont imprévisibles."
oui, c'est une représentation graphique du pointeur d'instruction. la panoplie du debuggeur symbolique comprend ce pointeur (que l'on peut positionner à loisir -- en pétant la pile et l'exécution si c'est à un mauvais endroit) et les points d'arrêts; lorsque l'on a positionné un point d'arrêt (inconditionnel) l'exécution s'arrête sur la ligne de code en question et on a alors loisir de "changer l'instruction à exécuter".
J'ai beau faire glisser la fleche rien de se passe !!!
et un petit "run", F9, ?...
btw, la lecture du user guide de VS n'est pas inutile lorsque l'on ne connaît pas cet IDE.
Sylvain.
peracciu wrote on 26/03/2007 10:49:
Encore merci pour ta réponse, mais chez moi ça marche pas.
Meme si je mets une partie du main en commentaire, ca compile, le
terminal se lance, mais rien ne s'affiche.
normal d'après ce que tu indiques après ton programme est stoppé, i.e.
ne s'exécute PAS.
J'ai un retour sur VS avec un fleche jaune sur la première ligne du
code du prog de test, il y a marqué :
"Ceci est la prochaine instruction qui sera executée, pour changer
l'instruction a executer faites glisser la fleche. :) Les conséquence
de cette opération sont imprévisibles."
oui, c'est une représentation graphique du pointeur d'instruction.
la panoplie du debuggeur symbolique comprend ce pointeur (que l'on peut
positionner à loisir -- en pétant la pile et l'exécution si c'est à un
mauvais endroit) et les points d'arrêts; lorsque l'on a positionné un
point d'arrêt (inconditionnel) l'exécution s'arrête sur la ligne de code
en question et on a alors loisir de "changer l'instruction à exécuter".
J'ai beau faire glisser la fleche rien de se passe !!!
et un petit "run", F9, ?...
btw, la lecture du user guide de VS n'est pas inutile lorsque l'on ne
connaît pas cet IDE.
Encore merci pour ta réponse, mais chez moi ça marche pas. Meme si je mets une partie du main en commentaire, ca compile, le terminal se lance, mais rien ne s'affiche.
normal d'après ce que tu indiques après ton programme est stoppé, i.e. ne s'exécute PAS.
J'ai un retour sur VS avec un fleche jaune sur la première ligne du code du prog de test, il y a marqué : "Ceci est la prochaine instruction qui sera executée, pour changer l'instruction a executer faites glisser la fleche. :) Les conséquence de cette opération sont imprévisibles."
oui, c'est une représentation graphique du pointeur d'instruction. la panoplie du debuggeur symbolique comprend ce pointeur (que l'on peut positionner à loisir -- en pétant la pile et l'exécution si c'est à un mauvais endroit) et les points d'arrêts; lorsque l'on a positionné un point d'arrêt (inconditionnel) l'exécution s'arrête sur la ligne de code en question et on a alors loisir de "changer l'instruction à exécuter".
J'ai beau faire glisser la fleche rien de se passe !!!
et un petit "run", F9, ?...
btw, la lecture du user guide de VS n'est pas inutile lorsque l'on ne connaît pas cet IDE.
Sylvain.
James Kanze
On Mar 27, 4:40 pm, "alexandre" wrote:
"peracciu" a écrit dans le message denews:
C'est bon ca marche, mais que sous DevC++. Sinon si quelqu'un a le courage de regarder mon code et de me donner des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant t on sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser regarder la sortie de la console ? Dans ce cas, autant mettre un point d'arret (dans ton EDI) sru le return 0
Dans quel cas, il le lance d'une fenêtre terminal, non ? C'est quand même la plus simple. Je sais qu'il y a cette manie chez les windowsiens d'éviter les fenêtres terminal -- encouragée par Microsoft --, mais c'est quand même ce qu'il y a de plus souple, même sous Windows.
-- James Kanze (Gabi Software) email: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On Mar 27, 4:40 pm, "alexandre" <alexandre_21...@hotmail.fr> wrote:
"peracciu" <perac...@gmail.com> a écrit dans le message
denews:1174931424.218609.247400@p77g2000hsh.googlegroups.com...
C'est bon ca marche, mais que sous DevC++.
Sinon si quelqu'un a le courage de regarder mon code et de me donner
des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant t on
sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser
regarder la sortie de la console ? Dans ce cas, autant mettre un point
d'arret (dans ton EDI) sru le return 0
Dans quel cas, il le lance d'une fenêtre terminal, non ? C'est
quand même la plus simple. Je sais qu'il y a cette manie chez
les windowsiens d'éviter les fenêtres terminal -- encouragée
par Microsoft --, mais c'est quand même ce qu'il y a de plus
souple, même sous Windows.
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
C'est bon ca marche, mais que sous DevC++. Sinon si quelqu'un a le courage de regarder mon code et de me donner des conseils je suis preneur, merci d'avance.
comme on te l'a suggéré, il faut vider le buffer de std::cout avant t on sytem("pause') :
std::cout.flush();
ce dit, ce system("pause') est bien moche... A quoi sert-il ? A te laisser regarder la sortie de la console ? Dans ce cas, autant mettre un point d'arret (dans ton EDI) sru le return 0
Dans quel cas, il le lance d'une fenêtre terminal, non ? C'est quand même la plus simple. Je sais qu'il y a cette manie chez les windowsiens d'éviter les fenêtres terminal -- encouragée par Microsoft --, mais c'est quand même ce qu'il y a de plus souple, même sous Windows.
-- James Kanze (Gabi Software) email: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
peracciu
J'ai utlisé Dev C++ et ca marche très bien.
Donc je laisse VS de coté pour cette classe.
Sinon pour le problème de flèche, il n'y a aucun point d'arret. Je n'en ai pas mis.
Merci pour vis réponses.
cdlt P.
J'ai utlisé Dev C++ et ca marche très bien.
Donc je laisse VS de coté pour cette classe.
Sinon pour le problème de flèche, il n'y a aucun point d'arret. Je
n'en ai pas mis.