Macht man mit curses.
 
Hier ein kleine Beispielprogramm, das ich vor (10?) Jahren mal geschrieben habe.
 
Kanns momentan leider nicht testen, lief aber....das was du willst sind die "move"
 
 
[Edit] Korrigiert (mehr includes) und getestet, kompilieren mit:
 
gcc -Wall -lncurses -o curtest curtest.c
 
 
Code: 
 
#include <stdlib.h>
 
#include <stdio.h>
 
#include <curses.h>
 
 
int main (void)
 
{
 
  int   zeich, weiter = 1;
 
 
  initscr ();
 
 
  keypad (stdscr, 1);
 
 
  cbreak ();
 
  noecho ();
 
 
  clear ();
 
  printw ("Funktions- und Pfeiltasten\n");
 
  printw ("==========================\n");
 
  refresh ();
 
 
  while (weiter) {
 
 
    move (10, 0);
 
 
    switch (zeich = getch ()) {
 
    case KEY_UP:
 
      printw ("'Pfeil nach oben', Size: %d, %d", LINES, COLS);
 
      break;
 
 
    case KEY_DOWN:
 
      printw ("'Pfeil nach unten'");
 
      break;
 
 
    case KEY_LEFT:
 
      printw ("'Pfeil nach links'");
 
      break;
 
 
    case KEY_RIGHT:
 
      printw ("'Pfeil nach rechts'");
 
      break;
 
 
 
    case 27:
 
      printw ("'Escape'");
 
      weiter = 0;
 
      break;
 
    }
 
    clrtoeol ();
 
 
    if (weiter) {
 
      move (12, 0);
 
      printw ("Weiter...\n");
 
    }
 
    refresh ();
 
  }
 
  endwin ();
 
  exit (0);
 
}
 
 
 |