• C

EASY Question, How to detect delete key and backspace input for scanf


Title is a little confusing, but my program asks for input
and if they mess up and press the backspace it inserts weird characters, or when they press the back arrow key or forward error key.

How to detect that these keys were pressed and the input is deleted one space or if arrow key is pressed the cursor goes back or forward one place?

I am doing this program in C and some C++, so either solution would be nice.
This is a command line program.

Who is Participating?
Sjef BosmanGroupware ConsultantCommented:
You can't on a Linux-system. Normally the system is in "cooked" mode, unless you set "raw" mode. In "cooked" mode, some or all special characters are dealt with by the O/S itself.

What system are you on, what O/S??
LinkLinkAuthor Commented:
I am on a Linux machine, Red Hat

A Project for school we are writing our own bash shell type thing,  I have got the whole thing working just need to make it so when you input something you can delete, and use arrow keys like a normal shell would do.
LinkLinkAuthor Commented:
It is not part of the assignment, but just for my own satisfaction of making it the best I can
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

I guess your problem is actually that the default behaviour of backspace is not well configured,


     "abcdx" you want to remove the "x" to put a "e" and you get
     "abcdx^H" for instance.
Have a look to http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-5.html
Avik DasguptaCommented:
  try to use the terminfo capabilities in term.h and temios.h
There u have to properly configure the terminal environment at the start of the program.
Moreover u can also search for the tgoto function manuals. I don't remember whether it is available in ur Red Hat L. There is also the curses or ncurses library. Go through the manuals of each of them . You may get a possible solution. Because these libraries lets u configure the terminal of the Linux system.

LinkLinkAuthor Commented:

you all had right answers so I split the points amongst you,
The thing is I was ssh ing into  the linux machine from my Mac, so the backspace keys are different and linux wasn't recognizing that.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.