cómo verificar el carácter de “retroceso” en C

Me gustaría saber cómo verificar si un usuario escribe el carácter de “retroceso”.

Estoy usando la función getch() function ie "key = getch()" en mi progtwig C y me gustaría comprobar cuándo se presiona la tecla retroceso. la línea:

  if(key = '\b') { .... 

no funciona

El problema con la lectura de Retroceso es que la mayoría de los terminales están “cocinados” porque el controlador del terminal maneja las teclas de retroceso. Sin embargo, la función de curses getch() puede leer el retroceso ya que no está vinculado al terminal.

Editar

Me acabo de dar cuenta de que su código está usando getch() para la entrada. Ejecuté un pequeño progtwig de prueba y getch() devuelve 127 cuando tocas el retroceso. Por lo tanto, pruebe:

 if (key == 127 || key == 8) { ... /* Checks for both Delete or Backspace */ 

También tenga en cuenta que su código de ejemplo utiliza el operador de asignación = cuando debería estar usando el operador de igualdad ==

El tipo de flujo de E / S puede ayudar. El flujo de entrada estándar es un tipo de flujo de línea con búfer, que no se vaciará hasta que escriba un carácter ‘\ n’ en él. El flujo de almacenamiento intermedio completo nunca se vaciará hasta que el almacenamiento intermedio esté lleno. Si escribe un retroceso en el flujo Buff completo, se puede capturar ‘\ b’.

Haga referencia al progtwig de ventajas del entorno Unix.

Usted no dijo de qué biblioteca proviene la función getch() (no es parte del estándar C), pero si es la de ncurses, puede verificar el valor de la key frente a KEY_BACKSPACE .

Prueba esto:

 #include  /* printf */ #include  /* isalpha isdigit isspace etc */ #define FALSE 0 #define TRUE 1 /* function declarations */ int char_type(char); main() { char ch; ch = 127; char_type(ch); ch = '\b'; char_type(ch); return 0; } int char_type(char ch) { if ( iscntrl(ch) != FALSE) printf("%c is a control character\n", ch); } 

Este es un progtwig completo, pero solo prueba los caracteres de control. Podrías usar principios de eso, tu elección. ¡Solo estoy aprendiendo también!

Consulte: http://www.tutorialspoint.com/c_standard_library/ctype_h.htm o busque las funciones para el archivo de encabezado ctype.h de la Biblioteca estándar C.

Es bueno que estés recibiendo información. Gracias a todos por la información. Estaba buscando el código de retroceso y encontré esta pregunta.

Por cierto, intente ‘\ 0’ antes de cualquier char. No estoy seguro de lo que hace, pero detiene todo el código después de eso. Es como el retorno 0; ¿línea?

Creo que el controlador de entrada del sistema está almacenado en línea. Entonces no es posible en el estándar C.