【发布时间】:2019-10-07 07:03:18
【问题描述】:
我正在用 C 制作一个登陆器版本(Atari 1979)。我需要在我的游戏中实现一个计时器,然后在屏幕上打印。
我使用 SDLDrawLine 是因为我有一个代表我的字符的向量。我需要我的代码来运行一串字符,这很好。我使用 sprintf 函数将一个数字转换成一串字符打印在屏幕上。
char aux_str[MAX_VALUES];
sprintf(aux_str,"%d",*value);
for(j=0;j<strlen(aux_str);j++){
*tam_caracter_numero = letra_a_longitud(aux_str[j]);
*ptr_valor = letra_a_vector(aux_str[j]);
for(i=0;i<*tam_caracter_numero-1;i++){
SDL_RenderDrawLine(
renderer,
(*ptr_valor)[i][0] * escalado + pos_x,
-(*ptr_valor)[i][1] * escalado + pos_y,
(*ptr_valor)[i+1][0] * escalado + pos_x,
-(*ptr_valor)[i+1][1] * escalado + pos_y
);
}
这工作正常,但我需要我的计时器从 0000 开始,更改为 0001,0002,.... 但是当我使用 sprintf 将我的数字转换为字符串时,结果只有 1,并且不打印de 0s。有一些功能或某种方式可以使这成为可能吗?那让我们从 0000 年开始?
【问题讨论】:
-
我试过这个,但它不起作用。首先,我的问题不包括 printf 函数,而是 sprintf。然后我的问题不是在屏幕上打印,而是我必须从 0001(作为数字)传递到一串字符(使用 sprintf),然后使用 sdl2 函数将其打印在我的游戏屏幕上。当干草在 0001 上使用 sprintf 时,我得到一个 1。
-
printf 和 sprintf 的格式字符串说明符是一样的。