josgalo
2003-12-01 20:24:52 UTC
Hola a ***@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:
#include <stdio.h>
#include <conio.h>
void main()
{
int i=0, f=0;
char car;
char frase[100];
do {
car=_getche();
/***********para borrar pero no consigo
que borre el elemento[0]*******/
if (car==8 && i!=0) frase[i-1]=NULL;
else if (car==8 && i==0) frase[0]=NULL;
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++)
/************muestra el valor decimal del carácter introducido*********/
printf("%d\n", frase[f]);
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 :-(
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:
#include <stdio.h>
#include <conio.h>
void main()
{
int i=0, f=0;
char car;
char frase[100];
do {
car=_getche();
/***********para borrar pero no consigo
que borre el elemento[0]*******/
if (car==8 && i!=0) frase[i-1]=NULL;
else if (car==8 && i==0) frase[0]=NULL;
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++)
/************muestra el valor decimal del carácter introducido*********/
printf("%d\n", frase[f]);
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 :-(