我是编程的初学者,而且我一直在为SDL_TTF调用的函数遇到麻烦:
SDL_Surface * TTF_RenderText_Solid(TTF_Font * font,const char * text,SDL_Color fg);
这允许创建一个带有文本的表面,但我的问题是我需要将数字发送到第二个参数。第二个参数只接受char变量,而我的变量是int ...
有没有办法通过将int数存入char变量来绕过它...或者是一种键入第二个参数以便接受int变量的方法?嗯..
答案 0 :(得分:0)
在C中没有自动将整数(或其他数字格式)转换为文本,您必须明确地进行。
例如,您可以编写一个执行转换的包装函数并调用SDL库调用:
#include <stdlib.h>
SDL_Surface* MyRenderInteger_Solid(TTF_Font* font, int value, SDL_Color fg)
{
char numBuffer[20];
itoa(value, numBuffer, 10); /* convert value to decimal string */
return TTF_RenderText_Solid(font, numBuffer, fg);
}
请注意,“#include”应位于文件的顶部,而不是在定义函数之前(除非您的函数也位于源文件的顶部)。