Pb : "cannot convert char[2] to char, il m'écrit le code ASCII...

Pb : "cannot convert char[2] to char, il m'écrit le code ASCII... - C++ - Programmation

Marsh Posté le 05-04-2004 à 12:44:28    

Bjr @ tous, voila j'ai un projet d'info à réaliser, on doit en fait réaliser une machine de Turing...
Bref, on écrire sur une fenêtre graphique une table de transition qui comporte 9 lignes avec sur chacune delle 5 caractères correspondant à letat lu, le déplacement de la tete de lecture de lecture etc...
Mon prob est que je n'arrive pas à introduire des caractères : il me met "cannot convert char[2] to char" lorsque je met les caractères entre " et si je les met entre ' il ne me les écrit pas, mais m'écrit les numéros correspondants aux lettres référencés dans le code ASCII...
Donc est ce que qq'un peut m'aider svp ?
voici mes structures et fonctions :
 
 
typedef struct
{
 double posX;
 double posY;
 char carac;
}caze;
 
 
void dessinercaze(caze z)
{
 F.SetPen(BLACK,1);
 F.SetBrush(WHITE);
 F.DrawRectangle(z.posX,z.posY,z.posX+30,z.posY+30);
 F.DrawInteger(z.posX+10,z.posY+6,z.carac);
}
 
void dessiner_caze(double posX,double posY)
{
 int i,j;
 i=j=0;
 do
 {
  caze z={posX+i,posY,1};
  dessinercaze(z);
  i=i+29;
  j++;
 }
 while (j!=23);
}
 
 
 
typedef struct
{
 char etat_courant;
 char symbole_lu;
 char symbole_ecrit;
 char deplacement;
 char etat_suivant;
}transition;
 
 
 
 
void afficherligne(double posX,double posY,transition z)
{
 F.DrawInteger(posX,posY,z.etat_courant);
 F.DrawInteger(posX+40,posY,z.symbole_lu);
 F.DrawInteger(posX+100,posY,z.symbole_ecrit);
 F.DrawInteger(posX+140,posY,z.deplacement);
 F.DrawInteger(posX+180,posY,z.etat_suivant);
}
 
 
void dessinertransition(int posX,int posY,transition table[])
{  
 int i,b;
 i=b=0;
 F.SetPen(BLACK,1);
 F.SetBrush(YELLOW);
 F.DrawRectangle(posX,posY,posX+220,posY+280);
 do  
 {
  afficherligne(posX+10,posY+b+5,table[i]);
  b=b+30;
  i++;
 
 }
 while (i!=9);
}
 
et là comment je rentre mes caractères (dans main) :
 
 
 transition table[10]={'I',0,0,'D','I',
        'I',1,1,'D','I',
        'I','-','-','G','a',
        'a','-','-','-','T',
        'a',0,1,'G','b',
        'a',1,0,'G','a',
        'b','-','-','D','T',
        'b',1,1,'G','b',
        'b',0,0,'G','b'};
 
 
 
 dessinertransition(550,250,table);
 dessiner_caze(55,30);
 
 
 


---------------
Be myself, I have nothing to prove...
Reply

Marsh Posté le 05-04-2004 à 12:44:28   

Reply

Marsh Posté le 05-04-2004 à 12:50:29    

dans ta struct transition tu as 5 char, alors il faut initialiser 5 char dans le main!

Reply

Marsh Posté le 05-04-2004 à 13:07:57    

JagStang a écrit :

dans ta struct transition tu as 5 char, alors il faut initialiser 5 char dans le main!


 
bé oué mais je vois pas trop, je remplis bien 5 caractères par ligne quand j'écris transition table[10]={......}  NON ???


---------------
Be myself, I have nothing to prove...
Reply

Marsh Posté le 05-04-2004 à 13:20:10    

up! svp help me !!


---------------
Be myself, I have nothing to prove...
Reply

Marsh Posté le 05-04-2004 à 13:22:41    

Code :
  1. transition table[10]=
  2. {
  3.         {'I',0,0,'D','I'},
  4.        {'I',1,1,'D','I'},
  5.        {'I','-','-','G','a'},
  6.        {'a','-','-','-','T'},
  7.        {'a',0,1,'G','b'},
  8.        {'a',1,0,'G','a'},
  9.        {'b','-','-','D','T'},
  10.        {'b',1,1,'G','b'},
  11.        {'b',0,0,'G','b'}
  12. };


 
ca devrait etre mieux non ?


Message édité par Joel F le 05-04-2004 à 13:22:53
Reply

Marsh Posté le 05-04-2004 à 13:25:37    

heu tjrs pareil, je comprend vraiment pas ce kil va pas : là il m'écrit tjrs les nombres correspond au code ASCII, et si je met des ", ba tjrs le mess derreur cannot convert.... :sweat:


---------------
Be myself, I have nothing to prove...
Reply

Marsh Posté le 05-04-2004 à 13:31:42    

bon voilà lerreur exacte ke j'ai :
 
 error C2440: 'initializing' : cannot convert from 'char [2]' to 'char'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Error executing cl.exe.
 


---------------
Be myself, I have nothing to prove...
Reply

Marsh Posté le 05-04-2004 à 13:35:39    

tonio_10 a écrit :

bon voilà lerreur exacte ke j'ai :
 
 error C2440: 'initializing' : cannot convert from 'char [2]' to 'char'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Error executing cl.exe.
 
 

pour quelle ligne de ton code cette erreur??
A+,

Reply

Marsh Posté le 05-04-2004 à 13:36:10    

ton "F.DrawInteger(z.posX+10,z.posY+6,z.carac);" ca sort d'ou ?
regardes si tu as pas un DrawChar , DrawString ou qqchose dans le genre.
paske les char c'est toujours que des nombres entre 0 et 255 ^^

Reply

Marsh Posté le 05-04-2004 à 13:38:01    

Joel F a écrit :

ton "F.DrawInteger(z.posX+10,z.posY+6,z.carac);" ca sort d'ou ?
regardes si tu as pas un DrawChar , DrawString ou qqchose dans le genre.
paske les char c'est toujours que des nombres entre 0 et 255 ^^


 
oué en effet je crois que ca vien de mon F.drawinteger ki sert a "dessine un entier de caractere depuis le point (iX,iY) avec le style définit par Setfont" donc oué je peux utliser drawstring a la place c pareil ??


---------------
Be myself, I have nothing to prove...
Reply

Marsh Posté le 05-04-2004 à 13:38:01   

Reply

Marsh Posté le 05-04-2004 à 13:53:41    

avec drawstring fo utiliser des pointeurs ????


---------------
Be myself, I have nothing to prove...
Reply

Marsh Posté le 05-04-2004 à 14:14:53    

upupupupup


---------------
Be myself, I have nothing to prove...
Reply

Marsh Posté le 05-04-2004 à 14:29:11    

oh du C

Reply

Marsh Posté le 05-04-2004 à 15:17:36    

tonio_10 a écrit :


 
oué en effet je crois que ca vien de mon F.drawinteger ki sert a "dessine un entier de caractere depuis le point (iX,iY) avec le style définit par Setfont" donc oué je peux utliser drawstring a la place c pareil ??
 


 
j'en sais rien, c'est quoi ta bibliothéque d'affichage ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed