Pgm ncurses read fic
Exemple de programme ncurses
- Premier ecran en mode texte avec affichage du contenu d'un fichier dans un second ecran
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <curses.h> void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string); int main() { FILE *fp; int ch, prev, i, row, col, y, x; char regle1[]=" 10 20 30 40 50 60 70 80 90 100 "; char regle2[]="----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----"; fp = fopen("./test.txt", "r"); if(fp == NULL) { perror("Cannot open input file"); exit(1); } initscr(); /* start the curses mode */ noecho(); /* désactive l'affichage sur l'écran d'une touche frappée au clavier */ cbreak(); /* rend immédiatement disponible le caractère saisi */ curs_set(0); getmaxyx(stdscr,row,col); /* get the number of rows and columns */ box(stdscr,0,0); mvwprintw(stdscr,2,1,"%s",regle1); mvwprintw(stdscr,3,1,"%s",regle2); refresh(); getch(); WINDOW *fntr=newwin(20,80,5,10); /* new win 10 sur 50 a la ligne 10 colonne 10 */ if (!fntr) { printw("ERROR with newwin\n." ); refresh(); getch(); } box(fntr,0,0); /* permet de tracer des lignes, des cadres ASC_VLINE ASC_HLINE*/ print_in_middle(fntr, 1, 0, 50, "Mon Menu"); mvwaddch(fntr, 2, 0, ACS_LTEE); mvwhline(fntr, 2, 1, ACS_HLINE, 78); mvwaddch(fntr, 2, 79, ACS_RTEE); mvwprintw(stdscr,LINES - 2, 1,"%s", "F3 to exit"); wrefresh(fntr); getyx(fntr,y,x); /* getbegyx(win, starty, startx); */ getmaxyx(fntr, row, col); row--; wattron(fntr,A_BOLD); while((ch = fgetc(fp)) != EOF ) { x++; if ( ch == '\n' ) { y++; x=0; move(y,x);} else { if ( y < row ) mvwaddch(fntr,y,x, ch);} wrefresh(fntr); } wattroff(fntr,A_BOLD); /* Switch it off once we got * /* FIN */ getch(); delwin(fntr); endwin(); close(fp); return 0; } void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string) { int length, x, y; float temp; if(win == NULL) win = stdscr; getyx(win, y, x); if(startx != 0) x = startx; if(starty != 0) y = starty; if(width == 0) width = 80; length = strlen(string); temp = (width - length)/ 2; x = startx + (int)temp; mvwprintw(win, y, x, "%s", string); refresh(); }
Previous page: Pgm Long Fic
Page suivante : Pgm read write