Dans une String voir la valeur d'une variable

BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005 - 31 déc. 2004 à 11:57
 garslouche - 31 déc. 2004 à 15:52
Bonjour,
Je cherche comment affiché dans une String la valeur d'une variable.

Je sais que dans une application console ont fait:

int i;
i = 4;
Console::WriteLine("Mon texte {0}", i);
// etc...

Ce qui fait:
Mon texte 4

Mais j'aimerai faire la même chose dans une MessageBox et dans un label. (Application WinForm)

Je tourne sous Visual C++ .NET Standard Edition
Merci d'avance pour vos réponses.

BIG_BOSS

25 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 déc. 2004 à 12:47
En utilisant les MFC ou non ?

Pour les MFC, je te conseille d'utiliser la fonction Format de la classe CString qui te permet de faire la même chose mais avec une sémantique légérement différente.
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
31 déc. 2004 à 12:49
Peux-tu me faire un exemple stp.
Merci.

BIG_BOSS
0
CriPpLe Messages postés 78 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 avril 2005
31 déc. 2004 à 12:49
CString str;
int iVariable;

iVariable = 2;
str.Format("Ma variable est egale a %d",iVariable);

MessageBox(str);


Je pense que c'est ça que tu recherches ;)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 déc. 2004 à 12:49
BIG_BOSS_001 >ce ne serait pas pour C# ton code par hasard ?

ciao...
BruNews, MVP VC++
0

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

Posez votre question
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
31 déc. 2004 à 12:53
Bonjour "Admin CS et CriPpLe"
Non c'est bien du code C++ .NET que je fais pour répondre à ta question Admin CS.

Je vais testé ça tout de suite CriPpLe.
Merci.

BIG_BOSS
0
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
31 déc. 2004 à 12:59
CriPpLe ça ne fonctionne pas, en plus ton code semble être du C#.

CString str;
int iVariable;

iVariable = 2;
str.Format("Ma variable est egale a %d",iVariable);

MessageBox(str);

Mon compilateur me dis que ce n'est pas valide.

J'ai remplacé par:

CString *str;
int iVariable;

iVariable = 2;
str->Format("Ma variable est egale a %d",iVariable);

MessageBox::Show(str);

et ça ne fonctionne pas non plus, il me dis: "néccéssite une convertion boxing".
Je ne sais pas du tout ce que c'est.

BIG_BOSS
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 déc. 2004 à 13:11
Chez moi ca marche très bien sous VC++.NET 2003 :

CString str;
int iVariable;

iVariable = 2;
str.Format("Ma variable est egale a %d",iVariable);

MessageBox(str);
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
31 déc. 2004 à 13:15
Pas chez moi alors...

Voici ce que me mets Visual:

------ Début de la génération : Projet : test, Configuration : Debug Win32 ------

Compilation...
stdafx.cpp
Compilation...
AssemblyInfo.cpp
Form1.cpp
c:\Visual Project\test\Form1.h(64) : error C2065: 'CString' : identificateur non déclaré
c:\Visual Project\test\Form1.h(64) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'str'
c:\Visual Project\test\Form1.h(64) : error C2065: 'str' : identificateur non déclaré
c:\Visual Project\test\Form1.h(68) : error C2228: la partie gauche de '.Format' doit avoir un type class/struct/union
le type est ''unknown-type''
c:\Visual Project\test\Form1.h(68) : error C3861: 'str': identificateur introuvable, même avec une recherche qui dépend de l'argument
c:\Visual Project\test\Form1.h(70) : error C3149: 'System::Windows::Forms::MessageBox' : utilisation non conforme du type managé 'System::Windows::Forms::MessageBox' ; n'auriez-vous pas oublié un '*' ?
c:\Visual Project\test\Form1.h(70) : error C2512: 'System::Windows::Forms::MessageBox' : aucun constructeur par défaut approprié disponible
c:\Visual Project\test\Form1.h(70) : error C2262: 'str' : ne peut pas être détruit(e)
Génération de code en cours...

Le journal de génération a été enregistré à l'emplacement "file://c:\Visual Project\test\Debug\BuildLog.htm"
test - 8 erreur(s), 0 avertissement(s)

---------------------- Terminé ----------------------

Génération : 0 a réussi, 1 a échoué, 0 a été ignoré

BIG_BOSS
0
CriPpLe Messages postés 78 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 avril 2005
31 déc. 2004 à 13:26
Normalement ça marche, par contre si t'as besoin de rentrer d'autres variables que des entier dans ton CString il faut utiliser la syntaxe suivante:

char -> %c
float -> %f
%% -> Pour afficher le signe pourcentage %

Il en existe d'autres mais je me rapelle plus exactement de ce que c'est ;)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 déc. 2004 à 13:27
Es-tu sûr de programmé avec les MFC ? Car il n'a pas l'air de trouver ta classe CString là !
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
CriPpLe Messages postés 78 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 avril 2005
31 déc. 2004 à 13:29
Est ce que tu utilises les MFC.

Pour te répondre, ce code est bien du c++ je l'utilise très souvent dans mes applications
0
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
31 déc. 2004 à 13:33
Excusez moi, je sais pas ce que c'est du MFC je suis un HYPER débutant.

Tout ce que je sais c'est que je fais:
Nouveau projet->Application Windows Forms.NET
Je nomme le projet "test"

Après j'ai la fenêtre pour créer l'interface.
Et dans le code y a les using namespace System;
System::Drawing;
etc...

BIG_BOSS
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 déc. 2004 à 13:37
Eh bien tu effaces tout, tu fais:

Nouveau projet->Application Win32 GUI
et proprietes 'vide'.

A partir de ce moment tu pourras ecrire du vrai code et ne plus etre emmerde avec des bidules interpretes.

ciao...
BruNews, MVP VC++
0
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
31 déc. 2004 à 13:39
D'accord mais à ce moment là, c'est plus du code C++ Managé si ?

BIG_BOSS
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 déc. 2004 à 13:43
ha ben non, si tu veux faire du manage alors continue tel que tu etais parti.
Par contre quasi personne n'en fait ici, tu ferais mieux de poser tes questions sur C#.
Tu es obligé ??? sinon faudrait nous dire a quoi ça sert d'avoir la complication du C++ en ayant perdu sa vitesse.

ciao...
BruNews, MVP VC++
0
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
31 déc. 2004 à 13:56
Je n'ai pas très bien compris ce que tu veux dire par:

"sinon faudrait nous dire a quoi ça sert d'avoir la complication du C++ en ayant perdu sa vitesse."

Et pourquoi dis tu que personne ne fais du C++ .NET ?
Vous n'aimez pas ?

Sinon non ce n'est pas très urgent c'est juste pour m'entrainer à maitriser le langage C++ car en C# je sais le faire mais je rencontre ce fameux problème en C++, donc j'aimerai quand même résoudre le problème.

Mais poster ma question sur C#, tout le monde va me sortir du code C#.

Je devine déjà:
int a;
a = 4;
MessageBox.Show("La valeur est: " + i);

Alors qu'il y a pleins de différences j'ai remarquer.
Par exemple: en C++ j'écrit MessageBox::Show(...);
Le "." est remplacé par "::" même des fois par "->"

Juste une question si ça ne vous dérange pas, quand utilise ton "::" et quand "->" ?

Merci.

BIG_BOSS
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 déc. 2004 à 13:56
J'adore ta logique BruNews ;)

Dis-donc, le C# est vraiment plus simple que le C++ ? Et niveau rapidité, ca donne quoi ?

Car ca pourrait m'intéresser vu que c'est l'avenir de la prog sous Windows je pense, et que ca ne doit pas énormément changer du VB...
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 déc. 2004 à 14:06
Oula, tu mélange un peu tout là en C++ !

En C++, l'opérateur d'indirection -> sers pour accèder aux membres d'un pointeur de classe ou de structure.
L'opérateur :: quand à lui permet d'accèder aux membres d'un espace de nom ou pour définir les membres d'une classe.
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 déc. 2004 à 14:06
Le C# et VB.net ont remplacé VB mais ne sont l'avenir que de l'interprete sous Windows, rien ne remplacera jamais le vrai code natif.
DARKSIDIOUS > tu sais bien que j'ai l'habitude d'appeler un chat un chat sinon il serait inutile de discuter.

ciao...
BruNews, MVP VC++
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 déc. 2004 à 14:15
Oui mais niveau rapidité, ca équivaut à du VB.NEt, je me trompe ?

Je pense que plus les ordinateurs évoluent, et plus les langages de programmation sont accessibles : je connais bien plus de monde qui développe en VB et C++ qu'en assembleur par exemple ! Et je pense aussi que cette tendance va continuer, et donc, les langages interprêtés devraient prendre de plus en plus de place... (c'est un point de vue personnel bien sûr). Le C s'est vu remplacé par le C++ dans pas mal d'entreprises, et maintenant, je pense que le C++ se fera remplacé à terme par du Java ou du C#, donc j'aimerais bien savoir si pour un programmeur VB il vaut mieux passer au C++ ou au C#... A ton avis ?
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
Rejoignez-nous