Преобразование int в Char* присвоение значений ascii C

#c #int #chars

#c #int #символы

Вопрос:

привет, я пытаюсь инициализировать переменную, я вызываю ее

 int Score;
char Buffer[1024];
  

я использую SDL, поэтому для их отображения мне пришлось преобразовать Score в char

При этом я увеличиваю оценку

                 case SDLK_m:
                    Score =1;
                    break;
  

и я отображаю это с помощью этой функции

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

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

итак, когда я отображаю это, это выглядит следующим образом
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.

Ответ №1:

itoa определяется следующим образом: char * itoa ( int value, char * str, int base );

Последний параметр является базовым, а не размером буфера, поэтому в вашем случае вы хотели бы передать 10 следующим образом:

 itoa(Score, Buffer, 10);