Aller au contenu

pb d'affichage apres utilisation des ncurses


Messages recommandés

bonjour bonjour

bon voila j'ai une petite appli qui tourne sympa en langage C

a un moment, dedans j'utilise les ncurses pour faire des modifications manuelles sur une ligne de caractere

apres je reviens en mode normal

le probleme c'est qu'une fois revenu en mode normal, mes printf (ou fprintf) ne s'affichent plus si je ne force pas le vidage du buffer avec fflush(NULL)

je vois pas trop d'ou ca peut venir et je trouve rien sur google. (je suis peut etre mauvais aussi)

mes init de ncurses :

		(void) initscr();	   /* initialize the curses library */
	(void) nonl();		  /* tell curses not to do NL->CR/NL on output */
	(void) cbreak();		/* take input chars one at a time, no wait for \n */
	(void) noecho();		/* echo input - in color */
	curs_set(0);			/* effacage du curseur  */
	m1 = newwin(15,80,0,0); /* creation d'une fenetre */
	keypad(m1, TRUE);	   /* enable keyboard mapping */

et je termine par

		/* nettoyage de la fenetre */
	wborder(m1, ' ', ' ', ' ',' ',' ',' ',' ',' ');
	wrefresh(m1);

	delwin(m1);	 /* suppression de la fenetre */
	endwin();	   /* remise des parametres par defaut */
	/* remise de l'affichage pseudo - normal */
	(void) nl();

si quelqu'un a une idée merci :iloveyou:

Lien vers le commentaire
Partager sur d’autres sites

oui si tu utilises des ncurses et que tu arretes le programme apres ca fonctionne tres bien

mais je trouve nul part des personnes qui utilisent les ncurses au milieu d'un prog et reprendre apres un affichage normal

d'ou mon probleme a trouver des solutions

pour repondre a ta question si je fait juste un endwin

j'ai :

les lignes qui s'affichent les une apres les autres sans revenir au debut de la ligne

exemple

bonjour
  comment
		ca...

(c'est pour ca que j'ai reactiver avec la fonction nl() a la fin

le nettoyage de la fenetre si je la fais pas, quand je vais reouvrir une nouvelle fenetre j'aurai encore mon ancien affichage meme si j'ai fait un delwin et endwin

y'a d'autres fonctions qui permettent de le faire mais celle ci est exotique :pleure:

EDIT : j'ai tenté d'utiliser les fonctions savetty() et resetty() qui sont sencées sauvegarder les parametres du terminal et les remettre d'origine apres, c'est encore pire :zarb:

Lien vers le commentaire
Partager sur d’autres sites

:roll:

EDIT : l'utilisation de la fonction nodelay(fenetre,TRUE) pour rendre le getch, wgetch, ... non bloquant c'est bien !

ca m'evite des problemes d'affichage la premiere fois que j'affiche dans la fenetre sous ncurses

par contre ca pompe du cpu car ca fait des boucles whiles tant que j'ai pas appuyé sur entrer :yes:

sinon apres je suis toujours obligé de forcer l'affichage dans mes fonctions C

ca m'embete un peu mais ca marche

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...