joel joel - 5 months ago 44
C Question

how to check for the "backspace" character in C

I'd like to know how to check if a user types the "backspace" character.

I'm using the

getch() function i.e. "key = getch()"
in my C program and i'd like to check when backspace is pressed. the line:

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

doesn't work.


The problem with reading Backspace is that most terminals are 'cooked' in that keys like backspace are handled by the terminal driver. However, the curses function getch() can read the backspace as it's not tied to the terminal.


I just noticed your code is using getch() for input. I ran a little test program and getch() returns 127 when you hit backspace. Therefore try:

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

Also note that your sample code uses the assignment operator = when it should be using the equality operator ==