Affichage d'un tableau de char dans une fenetre

Résolu
Benjam18 Messages postés 13 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 30 juin 2008 - 13 juin 2008 à 10:21
Benjam18 Messages postés 13 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 30 juin 2008 - 19 juin 2008 à 16:32
Bonjour à vous, j'aurai besoin de vous pour realiser un programme qui m'afficherai une fenetre et un message; j'ai un programme en console de ce genre :

#include

using namespace std;


void main()


{
int i;
char tab [12];
for (i=0;i++;i<12)
{
   tab[i]=a;
   cout<<"tab "<<i<<"="<<tab[i]<<endl;
}


}   

Comme vous pouvez le voir ce programme affiche mon tableau, mais ce en mode console, ma question est je pense simple pour vous : Comment afficher le plus simplement du mon de ceci (mon tableau de char) dans une fenetre ?

PS: J'ai chercher et reussi a afficher du texte dans une fenetre mais cependant pas mon tableau de char c'est pourquoi j'insiste sur ce tableau de char.

Merci à vous tous

10 réponses

Benjam18 Messages postés 13 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 30 juin 2008
19 juin 2008 à 16:32
Ok, pour moi tout est résolu, je vous remerci (enfin surtout toi SAKingdom) toutes tes reponses m'ont ete tres utiles.
3
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
13 juin 2008 à 11:30
Salut,
Le plus simple c'est la message box:
MessageBox(0, tab, 0, 0x40);

Neo_Fr
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
13 juin 2008 à 16:04
Important de préciser que pour faire afficher une chaîne de caractère, elle doit se terminer par un caractère nul.

int i;
char tab [12];
for (i=0;i < 11;i++)
{
   tab[i]='a';
}
tab[i] = 0;

En passent, la syntaxe de ta boucle for n'est pas bonne. Tu as inversé la section de l'action à effectuer et celle de la condition à respecter (les 2 dernières cases).

C++ (@++)<!--
0
Benjam18 Messages postés 13 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 30 juin 2008
16 juin 2008 à 08:58
Ok donc si je comprend bien, mon code donnerai :

#include

using namespace std;
void main()

{
int i;
char tab [13];
for (i=0;i<12;i++)
{
   tab[i]=a;
   cout<<"tab "<<i<<"="<<tab[i]<<endl;
}
tab[12]=0;

MessageBox(0, tab, 0, 0x40);

}   

J'ai essayer ce code dans un projet console Win32 vide ( avec visual studio 2005). Mais il me dit :
                                 error c3861 :"MessageBox" : identificateur introuvable

Manquerait-il un include ?
Ce n'est pas un projet console qu'il fallait utilisé ?

Je vous remercie encore si vous pouvé m'aidé (encore plus Neo et SAKingdom)
0

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

Posez votre question
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
16 juin 2008 à 17:22
#include <windows.h>

C++ (@++)<!--
0
Benjam18 Messages postés 13 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 30 juin 2008
17 juin 2008 à 09:44
Voici le code finale,  j'ai du rajouter quelques lignes pour reussir à afficher mon tableau  

#include
#include <windows.h>
#include
#include

using namespace std;
void main()

{
int i;
char tab [13];
for (i=0;i<12;i++)
{
   tab[i]=a;
   cout<<"tab "<"Titre de la fenêtre "
,0);

}   

Je vous remercie tous encore une fois.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
17 juin 2008 à 17:15
Tu aurais pus appeler MessageBoxA pour afficher directement ton tableau de char:

MessageBoxA( NULL, tab, "Titre de la fenêtre "
,0);

C++ (@++)<!--
0
Benjam18 Messages postés 13 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 30 juin 2008
18 juin 2008 à 11:43
Merci SAKingdom en effet ta solution est plus simple et plus besoin de tant d'include !!
Mais j'ai une autre question, existe t-il une astuce pour afficher un 0 car dans mon programme, je remplie mon tableau autrement et je me trouve quelques fois avec un 0 dans mon tableau, et mon affichage s'arrte prematurement. (je voudrai afficher ce 0 et ce qui suit). Merci
0
Benjam18 Messages postés 13 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 30 juin 2008
18 juin 2008 à 14:28
Pour l'instant j'ai résolu en remplaçant le 0(zéro) par un O (ho). Je n'ai pas trouvé trace d'une quelconque façon de changé le caractére de fin de chaîne (ce qui me semble normal).
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 juin 2008 à 19:19
Attention, il y a une différence en une valeur NULL (0) et le caractère 0 ('0'). Le caractère '0' devrais s'afficher sans problème étant donnée que ça valeur n'est pas NULL (il vaut 0x30 je crois).

Une valeur NULL (0) ne peut-être afficher et c'est bien normal.

Si tu veux convertir un chiffre (j'ai bien écris chiffre pas nombre)en un caractère lisible, suffis de lui incrémenter 0x30 (la valeur du caractère 0).

a = chiffre+'0';

C++ (@++)<!--
0
Rejoignez-nous