Anuncios Google

Como borrar los datos de un char

Bueno, pues yo lo que hago es cargar un teclado y escribir un texto, pero luego no encuentro la forma de borrar ese texto (los datos del char). El code es:

PA_Init();   
 PA_InitVBL();
 PA_InitText(1, 0);

PA_InitKeyboard(2); 
PA_KeyboardIn(20, 100);

s32 nletter = 0; 
char letter = 0;
char text[200];

 while (1)
 {              
  
  letter = PA_CheckKeyboard();
  
  if (letter > 31) { 
   text[nletter] = letter;
   nletter++;
  }
  else if ((letter == PA_BACKSPACE)&&nletter) { 
   nletter--;
   text[nletter] = ' '; 

  }
  else if (letter == '\n'){ 
   text[nletter] = letter;
   nletter++;
  }
  
  PA_SetTextTileCol(1,1);
  PA_OutputSimpleText(1, 2, 2, text);
  
  PA_WaitForVBL();
 }

para borrar el texto, probe:

PA_OutputSimpleText(1, 2, 2, "                          ");

PA_ClearTextBg(1);

text[0]=´/0´;

pero no se borra, consulte otros foros, le pregunte a otros coders y aun no lo solucione, como hago??No se si me explique bien...

Salu2


A que os mola la firma!!!


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de 123456abcdef

Vale, ya esta todo

Vale, ya esta todo solucionado, muchas gracias. Salu2.

Imagen de 123456abcdef

Si, ya me va con el code de

Si, ya me va con el code de knightFox, era por culpa de la pantalla donde estaba el texto. Pero ahora (lo explico a monte porque no me expreso muy bien hablando en C, haber si entendeis..,) se borran los valores adquiridos por el char (el texto) pero al volver a "escribirle" valores "el texto" comienza en la posicion donde le di el ultimo valor borrado anteriormente (por ejemplo, si el texto debe comenzar en la posicion x -> 2 aparece en x -> 5), me explique fatal, si dije alguna tonteria perdon...


A que os mola la firma!!!

Imagen de exterminator

Pon

a 0 la variable que se encarga de calcular el espacio.

Salu2

Imagen de exterminator

Imagino

que el char que quieres borrar es el char text[200], y con borrar te refieres a quitar los valores que adquirió.

Cuando no necesites el texto escribe:

for(contador=0; contador<=200; contador++)
{
    text[contador]=0;
}
contador=0;

Por supuesto, declara la variable contador antes.

Salu2


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.

Imagen de kNightFox

Repito,   memset(texto, 0,

Repito,

 

memset(texto, 0, 200);

 

Hace lo mismo que el bucle, pero sin perder el tiempo. Otra cosa es como lo apliques tu....


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de 123456abcdef

gracias por ayudar, pero el

gracias por ayudar, pero el code de knightFox lo que hace es no dejar seguir escribiendo y el de master sonic me da: warning: implicit declaration of function 'PA_Reinitiate' . Yo lo que intento es que al volver al menu se borren los datos del char, pero si vuelvo a cargar el teclado poder escribir otra vez con el char vacio...


A que os mola la firma!!!

Imagen de The Dark Master

Pues.

Usa el que te dio KnightFox y luego busca la variable que tiene el número de la letra (en los ejemplos solia ser nletter si no recuerdo mal), y esa variable ponla a 0.

Luego usa PA_ClearTextBg(pantalla); para vaciar el texto de la pantalla y asi no te queden tiles por hay sueltos.

PD: Hombre si solo necesitas ese texto en ese menu, define el char dentro del mismo junto a las otras variables que utiliza el teclado y asi se reinciara por si solo.


Imagen de 123456abcdef

Ya esta, puse: memset(text,

Ya esta, puse:

memset(text, 1, 200);
nletter=0;
PA_ClearTextBg(1);

ya me funciona, simples 3 lineas y que rollo monte... Gracias y Salu2.


A que os mola la firma!!!

Imagen de The Dark Master

Prueba esto:

int x;
 
PA_Reinitiate(){
while ( x <= 200){
text[x] =0;
x+=1;
}
}

En resumen, te devuelve el 0 en todas las letras...

Imagen de kNightFox

char x[200];memset(x, 0,

char x[200];
memset(x, 0, 200);

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.