Pues al usar la estructura directamente pasa lo de la basura, pero al usar un auxiliar de cadena, a mi me sirvio.
Código:
if ( event.type == SDL_KEYDOWN) //recogemos datos
{
//recogemos la tecla pulsada
if(event.key.keysym.sym>=65 && event.key.keysym.sym<=90 ||event.key.keysym.sym>=97 && event.key.keysym.sym<=122)
{
aux[i] = event.key.keysym.sym;
}
sprintf(msg,"%s",aux);
ttext = TTF_RenderText_Shaded(fuente,msg,fgcolor,bgcolor);
SDL_BlitSurface(ttext,NULL,screen,&clip_rect);
SDL_Flip(screen);
i=i+1;
}
Luego lo que haces es pasar el aux al campo de la estructura.
Lo del
clip_rect es porque declaro una posicion de pantalla que es la que se va a ir actualizando, para que a medida que se teclea se van poniendo en pantalla y no afecte al resto de la misma.