Print this page Share

Programmer's Guide to NCurses

ISBN: 978-0-470-14013-0
576 pages
May 2007


Programming the console in UNIX?

Here's just what you need.

First, you'll get a no-nonsense tutorial guide to the nCurses version 5.5 library, taking you from basic to advanced functions step by step. Then you'll find an A-to-Z reference of more than 175 nCurses functions, cross-referenced and illustrated with examples. With this all-purpose nCurses reference, you?ll:

  • Learn techniques that can be used to program Linux®, FreeBSD®, Mac OS® X, or any other UNIX-based OS.
  • Program, control, and manipulate text on the terminal screen.
  • Control interactive I/O, organize content into windows on the screen, and use color to highlight text and organize information.
  • Use a mouse to further refine input.
  • Create nCurses programs using your choice of editors.
  • Find hundreds of quick, easy-to-understand programming examples.

Author Dan Gookin is known for making technology make sense. Buy this book and you'll see why.

See More

Table of Contents




Curses or NCurses?


Compatibility Issues.

Contacting the Author.

Chapter 1 The Setup.

NCurses Is a UNIX Thing.

Run (Don’t Walk) to a Terminal Screen Near You.

Know Something About the Shell.

Some Shelly Stuff.

Know Your History, Because You’re Going to Repeat It.

Make a Place for Your Stuff.

Using an Editor to Create an NCurses Program.

Picking an Editor.

Creating Your First NCurses Program.

Some Deviations.

Know Thy Compiler.

Linking NCurses or Curses?

What Does the gcc Command Do?

Re-editing Your Source Code.

Where Is the Program?

Fixing Stuff (Again).

Don’t Panic When You Still Don’t See Anything!

Do You Think a.out Is a Goofy Name?

All Done!

General Info.

Handy Shell Commands to Know.

Source Code Tidbits.

Compiling Tips.

Chapter 2 Basic I/O, the NCurses Way.

The Skeleton.

The initscr() Function.

The initscr() Function’s Exceptions.

The endwin() Function.

The refresh() Function.

Writing Text.

Tossing Up Text One Stupid Character at a Time.

Pausing for a Side-trip.

Blurping Text.

The move() Function.

The Old Formatted Text Trick.

Reading Text.

The Silly Typewriter Program.

Consuming a String Whole.

Swallowing Only So Much of a String.

The Obligatory scanw() Program.

Chapter 3 Formatting Text.

Text Abuse with Text Attributes.

More than Boring Black and White (but Not Much).

Testing Some Attributes.

Multiple-Attribute Mania.

Can It Do Color?

Colors and Color Pairs.

Eight or Sixteen Colors?

Spruce Up Some Text!

A Color Thing Your Terminal Probably Cannot Do.

Coloring a Window.

Screen Background Color.

More than Solid.

Changing Color on the Fly.

Noise, Too!

Chapter 4 Around the Window.

Measuring the Standard Screen.

The Size of the Window Is Y by X.

And Now: the Shortcut.

Moving the Cursor Around.

Watch Out! I’ve Got You Cornered!

Some Compacting.

Center that Title!

Some Fun with mvprintw().

Whither the Cursor?

Chapter 5 More Text Manipulation.

Inserting and Deleting Functions.

Editing Shakespeare.

Inserting Some Lines.

Final Changes to Hamlet.

Inserting One Character at a Time.

A More Visual Example.

Less of Hamlet.

Goodbye, Chunk of Text!

Out It Goes and in It Comes.

Chapter 6 Clearing and Zapping.

Commands to Erase Chunks of the Screen.

The Obligatory Test Program.

Clear the Screen!

Clear or Erase?

Clrto means Clear To.

Less Blah on the End of a Line.

Less Blah to the End of the Screen.

You Mean that’s It for My NCurses Erasing Fun and Excitement?.

Chapter 7 Keyboard Madness!

Reading from the Keyboard.

Is a Character Waiting?

Testing Waiting Characters.

How to Implement kbhit().

Flushing Input.

Silence, Please!

Reading Special Keys.

Keypad On!

What’s Where on the Keyboard.

The Highlighted Menu Bar.

Chapter 8 Windows, Windows Everywhere!

Ye Olde Standard Screen.

Commands that Require a Window Argument.

The Pseudo Commands.

The Other Prefix, mv.

Making Windows.

The Obligatory New Window Sample Program.

Switching between Windows.

Windows of a Smaller Size.

Removing a Window.

Dueling Windows.

Stained Glass Windows.

Stop Repeating Me!

On Your Own.

Chapter 9 Subwindows.

The Thing with Subwindows.

Making Subwindows.

Your First Subwindow.

Your Second Subwindow.


Removing a Subwindow.

Subwindows Versus Windows.

Chapter 10 More Window Tricks.

Copying Window Contents.

To overlay or to overwrite?

The overwrite() difference.

The magic of copywin().

Plain old window duplication.

Scrolling Around.

Can it scroll?

Scroll Away.

The old manual scroll.

Scrolling by leaps and bounds.

Negative scrolling.

The Moving Experience.

Chapter 11 Dig My Pad, Man.

The Monster Window.

Making a Pad.

Viewing a Pad’s Contents.

More Pad-Viewing Stuff.


Making a subpad.

Working with a Subpad.

Some Optimization.

Removing a Pad.

Pad Miscellany.

Another Pad Function.

Forbidden Pad Functions.

Forbidden Pad Stuff.

Chapter 12 The Joy of Soft Labels.

What Is a Soft Label?

Doing the Soft Label Thing.

Stand by for Soft Labels.

Gimme Some Soft Labels.

Making the Index Line.

Soft Labels Here and Gone.

Hiding and Restoring the Labels.

Changing a Label.

Removing a Label.

Hooking in the Function Keys.

Chapter 13 Messing Mit der Mouse.

Hello, Mouse.

Can NCurses Deal with the Mouse?

Can Your Terminal Deal with the Mouse?

Reading the Mouse.

The “Reading the Mouse” Overview.

Where Did You Click that Mouse?

On Your Own.

What Clicked?

To Eek or Not to Eek?

Chapter 14 A Mixture of Stuff.

Adios, Cursor.

Line Drawing.

Boxing Windows.

Building Better Boxes.

We Control the Horizontal and the Vertical.

Between NCurses and Disk.

Functions that Dump the Screen.

Taking a Snapshot of the Screen.

Examining the Dump File.

Restoring the Screen.

Functions that Dump a Window.

Appendix A NCurses Library Reference.

Appendix B The Alternative Character Set.

Appendix C The chtype.

Appendix D Keypad Character Codes.


See More

Author Information

DAN GOOKIN began his career as a computer columnist and magazine editor. Then in 1991, he wrote DOS For Dummies and launched a juggernaut. Among his many titles in that popular series are PCs For Dummies, Word For Dummies, and C All-in-One Desk Reference For Dummies. Thanks to his unique style and dry wit, Dan's books are always informative and never boring.
See More
Back to Top