#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);