afficher une variable dans une messagebox [C++/Windows] - C++ - Programmation
Marsh Posté le 25-09-2003 à 17:10:30
Code :
|
Marsh Posté le 25-09-2003 à 17:12:00
Ca ca marche si je n'ai que ma variable
si je veux faire un truc du genre en C :
printf("Kikoo %s",Nom)
c po possible ca?
Marsh Posté le 25-09-2003 à 18:01:51
sstream ...
(sinon, sprintf si tu tiens à avoir exactement la même utilisation, mais ca reste du C)
Marsh Posté le 25-09-2003 à 18:30:01
Code :
|
ca marche ca?
Marsh Posté le 25-09-2003 à 18:30:21
non
d'aileurs tu l'aurais vu si t'avais essayer
regarde de la doc sur sprintf
Marsh Posté le 25-09-2003 à 18:34:28
Tu peux également faire la chose Windows-style en utilisant la fonction FormatMessage et les ressources de messages.
Marsh Posté le 29-07-2004 à 02:32:22
euh en faite on fait comment pour afficher simplement une variable genre
int a=55;
afficher a dans une petite fenetre?
lol, c bo de débuter non?
Marsh Posté le 29-07-2004 à 07:39:39
un truc du genre :
Code :
|
Marsh Posté le 29-07-2004 à 12:34:44
euh c koi le nom de l'entete qui contient ostringstream???
Marsh Posté le 29-07-2004 à 12:40:11
bouh ca marche pas, mon code c
void CNewDlg::OnOK()
{
// TODO: Add extra validation here
int a=66;
ostringstream str;
str << "ma variable a " << a;
CDialog::MessageBox(NULL,oss.str().c_str(),MB_OK|MB_ICONEXCLAMATION);
}
et ca met que ostringstream est "undeclared identifier"
c quoi mon probleme?
Marsh Posté le 29-07-2004 à 13:36:45
Pour le sprintf :
un ptit exemple en C (qui marchera dans ton code donc)
char buf[256];
sprintf(buf,"Mon entier est %d\n",mon_entier);
MessageBox(...,buf,...);
inconvénient : le dépassement de capacité doit etre possible si tu met plus de 256 caractères dans ton buffer, ce qui n'est pas le cas dans cet exemple (un entier, c 4 octets => en base 10, ya que 10 chiffres au max)! ATTENTION donc. Le mieux est alors de faire un malloc avec la bonne taille (et le free qui va avec).
Sinon, ca reste du C, ya mieux en C++ comme proposé plus haut.
Marsh Posté le 29-07-2004 à 14:09:48
oliv5 a écrit : Pour le sprintf : |
euh ca marche mais le "mon entier est 5" s'affiche en tant que titre de la message box, comment on fait pour le mettre dedans???
Marsh Posté le 29-07-2004 à 14:12:32
lunarnet76 a écrit : euh ca marche mais le "mon entier est 5" s'affiche en tant que titre de la message box, comment on fait pour le mettre dedans??? |
et si tu regardais un peu les paramètres de MessageBox ?
http://msdn.microsoft.com/library/ [...] agebox.asp
Marsh Posté le 29-07-2004 à 14:20:52
c simple le debugger dit que la fonction MessageBox ne prend pas 4 parametres, alors que sur msdn et partt ou j ai cherche ca en prend 4...
void CNewDlg::OnOK()
{
// TODO: Add extra validation here
char buf[256];
int a=66;
sprintf(buf,"Mon entier est %d",a);
CDialog::MessageBox(NULL,"cool",buf,MB_OK|MB_ICONEXCLAMATION);
}
Marsh Posté le 29-07-2004 à 14:25:46
lunarnet76 a écrit : c simple le debugger dit que la fonction MessageBox ne prend pas 4 parametres, alors que sur msdn et partt ou j ai cherche ca en prend 4... |
... ou l'art de mélanger Win32 et MFC ...
t'es en train de royalement te planter ! tu utilises la fonction MessageBox de CWnd qui prend 3 paramètres, alors que tu as consulté la doc de MessageBox pour Win32, qui prend effectivement 4 paramètres
Marsh Posté le 29-07-2004 à 14:28:14
oh #°§¬#mais qu est ce que j suis bete... NULL c la ou fo mettre le texte lol ...
Marsh Posté le 29-07-2004 à 14:32:20
ostringstream c'est le mieux. sprintf c'est dangereux, pénible à gérer (taille du buffer, spécificateur de type %d %f...) et comme la cat c'est C++, autant donner une solution C++ standard.
#include <sstream>
using namespace std;
// code de xterminhate
Marsh Posté le 25-09-2003 à 17:05:31
kikoo tous
voila un exemple tout bete : je stocke mon nom (Jojo) dans la variable Nom (char* ou tableau au choix) et apres je veux ecrire "Bonjour Jojo"
Mon pb : le texte a l'air completement prédéfini quand je le transmet a ma messagebox
c'est encore un truc de débutant mais faut bien apprendre.
Merci tous
Message édité par iceteapeche le 25-09-2003 à 17:09:58
---------------
Se souvenir des belles choses...