Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/11/2003, 18:39
Avatar de josgalo
josgalo
 
Fecha de Ingreso: noviembre-2003
Ubicación: conmigo mismo
Mensajes: 31
Antigüedad: 20 años, 6 meses
Puntos: 0
entrada de datos en C

Hola a tod@s

Estoy haciendo una práctica en C para el instituto. Trata de mejorar el cmd de windows con algunas funcionalidades que tiene el shell de linux. Para mi es complicadísimo aunque algo he conseguido; pero el caso es que una función del programa no hace lo que quiero (mejor dicho no sé cómo hacerlo ) . Utilizando _getche() y un vector que recogerá los caracteres me gustaría poder borrarlos y sobreescribirlos si hiciera falta. Lo que me he hecho borra y sobreescribre todo menos el elemento 0 y lo que imprime por pantalla tampoco sé como borrarlo.
Os copio el código:
Cita:
#include <stdio.h>
#include <conio.h>

void main()
{
int i=0, f=0;
char car;
char frase[100];
do {
car=_getche();
if (car==8 && i!=0) frase[i-1]=NULL; //para borrar pero no consigo que borre
else if (car==8 && i==0) frase[0]=NULL; //el elemento [0]
if (car!=13) frase[i]=car;
else frase[i]='\0'; //si pulsa ENTER
i++;
}
while (car!=13);
//if (frase[0]=='\0') //frase[0]=NULL; //printf("Hay solo un enter\n");
printf("\n\n");
for (f=0; f<i-1; f++)
printf("%d\n", frase[f]); //muestra el valor decimal del carácter introducido
printf("%s\n", frase);
}

Ah, también me sería de ayuda saber el valor decimal de la tecla Ins, no lo encuentro en la tabla ASCII.

Gracias por la ayuda que me podais dar.

P.D: Tendría que a ver ido más a clase
__________________
"La vida es muy peligrosa. No por las personas que hacen el mal,
sino por las que se sientan a ver lo que pasa."

Albert Einstein