Oppure

Loading
27/01/12 17:07
RiccardoG97
Provo a convertire con
static_cast<const char>(points)

ERRORE: argomento const char incompatibile con const char*

Dice che deve ricevere un puntatore a const char.

Provo così:
static_cast<const char>(pointsPtr) //PointsPtr punta points


Ma mi dà sempre errore...
ERRORE: conversione di tipo non valida

Sai come si potrebbe risolvere?
aaa
27/01/12 19:08
Dato che la itoa non è standard e che usi il C++, ti suggerirei di usare questo codice ...

#include <string>
#include <sstream>

using namespace std;


e

stringstream sout;

sout.str("");
sout << valore_numerico; 

message = TTF_RenderText_Solid (font, sout.str().c_str(),  textColor);
27/01/12 20:29
anthony015
questa è un programmino in C che feci tempo fa per risolvere questo problema senza itoa (c'è anche il main per testare), dovrebbe andare bene anche per il tuo caso...
int* scomponiInteroInSingoleCifre(int input)
{
    if(input<0)
        input*=-1;
    int* toRet=(int*)malloc(sizeof(int));
	int* tr;
    int i=0;
	toRet[i++]=-1;
	toRet=(int*)realloc(toRet,sizeof(int)*(i+1));
    do
    {
        *(toRet+i)=input%10;
        i++;
        input/=10;
		toRet=(int*)realloc(toRet,sizeof(int)*(i+1));
    }while(input/10>0||(input/10==0&&input%10!=0));
	tr=(int*)malloc(sizeof(int)*(i));
	int j;
    for(j=0;j<i;j++)
    *(tr+(i-j-1))=toRet[j];
    free(toRet);
	return tr;
}

const char* convertiArrayInteriInConstCharPointer(int* toConv)
{
    int contDim;
    for(contDim=0;toConv[contDim]!=-1;contDim++);
    char* toRet=(char*)malloc(sizeof(char)*(contDim+1));
    int i;
    for(i=0;i<contDim;i++)
    {
        toRet[i]=toConv[i]+48;
    }
    toRet[contDim]='questa è un programmino in C che feci tempo fa per risolvere questo problema senza itoa (c'è anche il main per testare), dovrebbe andare bene anche per il tuo caso...

int* scomponiInteroInSingoleCifre(int input)
{
    if(input<0)
        input*=-1;
    int* toRet=(int*)malloc(sizeof(int));
	int* tr;
    int i=0;
	toRet[i++]=-1;
	toRet=(int*)realloc(toRet,sizeof(int)*(i+1));
    do
    {
        *(toRet+i)=input%10;
        i++;
        input/=10;
		toRet=(int*)realloc(toRet,sizeof(int)*(i+1));
    }while(input/10>0||(input/10==0&&input%10!=0));
	tr=(int*)malloc(sizeof(int)*(i));
	int j;
    for(j=0;j<i;j++)
    *(tr+(i-j-1))=toRet[j];
    free(toRet);
	return tr;
}

const char* convertiArrayInteriInConstCharPointer(int* toConv)
{
    int contDim;
    for(contDim=0;toConv[contDim]!=-1;contDim++);
    char* toRet=(char*)malloc(sizeof(char)*(contDim+1));
    int i;
    for(i=0;i<contDim;i++)
    {
        toRet[i]=toConv[i]+48;
    }
    toRet[contDim]='{parsed_message}';
    return toRet;
}
int main()
{
    int input;
    char* redo=(char*)malloc(sizeof(char));
    char test=1,t;
    printf("Inserire un intero: ");
    scanf("%i",&input);
	const char* stringaCostante=convertiArrayInteriInConstCharPointer(scomponiInteroInSingoleCifre(input));
	printf("%s\n", stringaCostante);
	system("pause");
}
'; return toRet; } int main() { int input; char* redo=(char*)malloc(sizeof(char)); char test=1,t; printf("Inserire un intero: "); scanf("%i",&input); const char* stringaCostante=convertiArrayInteriInConstCharPointer(scomponiInteroInSingoleCifre(input)); printf("%s\n", stringaCostante); system("pause"); }
Ultima modifica effettuata da anthony015 27/01/12 21:41
aaa