Usar o Backspace em C

1. Usar o Backspace em C

Rafael
rafarocar

(usa Ubuntu)

Enviado em 06/06/2012 - 16:20h

Olá queria saber como eu uso o backspace em C eu tentei dessa forma:


system("stty echo raw");
c = getchar();
system("stty echo -raw");

if(c!=8){ // Código ASCII para Backspace
:
:



Porêm ele nem liga porque ele entra no if.
Se alguem puder ajudar, obrigado.


  


2. Re: Usar o Backspace em C

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/07/2012 - 23:00h

Olá.

Tente repensar o código observando este exemplo aqui:

#include <stdio.h>
#include <termios.h>

#define OFF 0
#define ON 1

void echo(short int s){

static short int e_flag = 0;
static int t_flag = 0;
static struct termios t_new;

if (!e_flag) {
e_flag = 1;
tcgetattr(0, &t_new);
t_flag = t_new.c_lflag;
}

if (s==0) t_new.c_lflag &= ~ECHO;
else t_new.c_lflag = t_flag;
if (s==1) t_new.c_lflag &= ~ICANON;

tcsetattr(0, TCSANOW, &t_new);

return;

}

int main (void){

char a, b, c;

__fpurge(stdin);
putc('x',stdout);
read(0,&a,1);

echo(0);

__fpurge(stdin);
putc('y',stdout);
read(0,&b,1);;

echo(1);

__fpurge(stdin);
putc('z',stdout);
read(0,&c,1);

printf("a=%c; b=%c; c=%c\n", a, b, c);

return 0;

}



Veja se é interessante e se é melhor trabalhar com esta outra função e adapte-o às suas necessidades.

Se der algum problema com o terminal após terminar, digite tset, mesmo que nada apareça.


3. Re: Usar o Backspace em C

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/07/2012 - 23:10h

Inclusive teve uma postagemm anterior com algo parecido:

http://www.vivaolinux.com.br/topico/C-C++/kbhit()-no-linux






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts