The Ncurses library attempts to create a standardized solution for these problems.
- A program needs to know which keys are pressed and when.
- A program needs to know a terminal's capabilities. Can text be bold, italic, or in color?
- A program needs to know how to exploit a terminal's capabilities. How does a program tell the terminal to move the cursor, to change text color, or to erase the screen?