2012-04-16 2 views
-2

Je suis en train de résoudre le problème this et je reçois une telle erreur [de conversion non valide de « char » à « const char »], mais je ne peux pas comprendre comment le résoudre. Voici les lignes où le problème est le suivant:C de conversion non valide de

Declarations: 
string alp("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 
string formatted; 
char partoftext[20]; 
size_t found; 

found = text.copy(partoftext,2,0); 
partoftext[found] = '\0'; 
a = atoi(partoftext); 
formatted.append(alp[a]); 

...  

et le problème est dans cette ligne de code:

formatted.append(alp[a]); 

merci.

+2

vous ne donnez pas assez de contexte. qu'est-ce qui est formaté? Quelle est l'erreur? qu'est-ce qu'un? –

+0

Comment est-ce que 'formatted' est déclaré? – dschulz

+0

j'ai édité. Désolé les gars. – ddacot

Répondre

4

De: http: //www.cplusplus.com/reference/string/string/append/

formatted.append(1, alp[a]); 

/* 
string& append (const string& str); 
string& append (const string& str, size_t pos, size_t n); 
string& append (const char* s, size_t n); 
string& append (const char* s); 
string& append (size_t n, char c); 
*/ 
+0

Merci, c'est tout! maintenant ça marche. – ddacot

+0

encore une question, pourquoi il montre des zéros au lieu de lettres? http://ideone.com/92d5F – ddacot

+0

Il est pas 0 mais « O ». Aussi, vous pouvez utiliser supstr au lieu de copier et stringstream au lieu de atoi-> ou jeter un oeil sur boost :: lexical_cast http://stackoverflow.com/questions/8065413/stdlexical-cast-is-there-such-a-thing – AlexTheo

0

Si ma conjecture est correcte (et il est une estimation parce que vous ne spécifiez pas ce que l'erreur est en fait), essayez:

formatted.append(alp, a, 1);

Questions connexes