c++ - getch() to capture Ctrl-*letter* on linux -
i have decided use getch conio.h on linux. have heard not recommended need solution , work improve programming skills later.
i read number of tutorials of how enter one key , program something. such as:
printf("press key\n"); c = getch(); if (c) printf(" key pressed keyboard "); else printf("an error occurred "); however if want use enter ctrl+e print 'a ctrl held key'. how go around doing this?
getch() function found on windows in #include <conio.h> or on unix in #include <curses.h>. did mean call 1 of those? not function defined in c standard (the standard functions getc() , getchar(), of course). if use function <curses.h>, need initialization first , finalization afterwards.
assuming resolve issue of function planning call, find control characters number 1..26:
- control-a =
1 - control-z =
26
you might need translation work on getch() <curses.h> — it returns interesting values function keys , other special key strokes , might not return expect control keys.
also, terminal driver may confuse interpreting various characters (especially if use getchar() or getc()). example, control-d treated eof; control-h backspace or erase; control-c interrupt; , control-z 'suspend' (meaning 'return shell without exiting current program — suspend pro tem'). other control keys have other meanings. can 'genuine' meaning typing control-vcontrol-z, example — using control-v suppress special meaning of next character.
Comments
Post a Comment