2011-04-08 123 views
0

喜我尝试并初始化变量 IM使用SDL所以要显示它们称之为转换INT为char *给ASCII值C++

int Score; 
char Buffer[1024]; 

IM我不得不转换得分为char

有了这个IM递增得分

   case SDLK_m: 
        Score+=1; 
        break; 

和IM具有这种功能显示此

void GetText() 
{ 
    itoa (Score,Buffer,1024); 

    drawString(screen,font2,0,0,"Score: "); 
    drawString(screen,font2,50,0,Buffer); 
} 

所以当IM显示它就像这样 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e等 我想它通常像0,1,2,3,4,5,6,7,8,9,10,11等数

所以我做错了什么?任何想法?

+1

第三个参数'itoa'是* base *。你想要基地10,而不是基地1024. – 2011-04-08 00:41:48

+0

哈哈真的够tyvm哈哈 – Makenshi 2011-04-08 00:43:00

回答

3

itoa定义如下:char * itoa (int value, char * str, int base);

最后一个参数是基础,没有缓冲区大小,所以你的情况,你会希望在10通过如下:

itoa(Score, Buffer, 10);