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
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
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
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
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
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
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)
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)
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
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
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