Ncurses: move() ne fonctionne pas

Fermé
ebousquie - 21 avril 2009 à 11:35
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 avril 2009 à 14:56
Bonjour,

Queslqu'un peut-il m'expliquer s'il existe des raisons qui pourraient empêcher la commande move(y,x) de fonctionner en mode ncurses? J'ai tenté toutes sortes d'astuces: refresh(), clear()... rien n'y fait !

Merci d'avance pour vos réponses

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
21 avril 2009 à 11:43
Salut,
Queslqu'un peut-il m'expliquer s'il existe des raisons qui pourraient empêcher la commande move(y,x) de fonctionner en mode ncurses?
Principalement une mauvaise utilisation. As-tu par exemple utilisé getch() avant le return 0; final ?
Cdlt
0
ebousquie Messages postés 40 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 28 avril 2009
21 avril 2009 à 14:13
Grosso modo la structure est celle ci-dessous.
Mais le texte est toujours placé au même endroit vers le milieu de la fenêtre. Quelle serait l'erreur?

Merci !

while(true)
{
move(0,0);
refresh();
printw("Texte\n" ) ;
refresh();
ch = getch();

switch(ch)
{
case A
for i de 1 à 3
move(10*i,0);
refresh();
printw("Texte1\n" ) ;
refresh();
break;


case B
move(-40,0);
refresh();
printw("Texte2\n" ) ;
refresh();
break;

case C
move(-50,0);
refresh();
printw("Texte3\n" ) ;
refresh();
return 0;
break;

{
}

Et le texte du case B ne s'affiche jamais en (-40,0)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
21 avril 2009 à 14:56
move(-40,0), ne fera pas grand chose de plus que move(0,0) qui est le coin supérieur gauche.
Si tu veux afficher à peu près au milieu verticalement : move(20,0).
Si tu veux afficher à peu près au milieu horizontalement : move(0,40).
N'oublie pas de faire un getch() avant le return 0; pour que tu puisses voir ce que t'affiches.

Cdlt
0