printf -> peut on placer un caractere a n importe quelle endroit ecran

printf -> peut on placer un caractere a n importe quelle endroit ecran - Programmation

Marsh Posté le 23-02-2002 à 21:49:45    

y a t il un moyen de choisir la position de l ecran ou l on veux placer un caractere ? ?
(en C)

Reply

Marsh Posté le 23-02-2002 à 21:49:45   

Reply

Marsh Posté le 23-02-2002 à 22:08:24    

:non: avec un simple printf ce n est pas possible, a moins de mettre plein d espace et de retour a la ligne comme un barbare
 
Le seul moyen c est d utiliser les termcaps  :D


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 23-02-2002 à 22:21:05    

mmm  
j ai un doute, je viens de faire une recherche sur le forum, je viens de tomber sur :
 
printf("\033[2J" ); <=> clear screen

Reply

Marsh Posté le 23-02-2002 à 22:35:57    

fait un locatexy(posx, posy)
avant ton printf et ce sera Ok


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 23-02-2002 à 22:39:12    

si ca marche je prefere ca:)
 
..la commande sinon, etait : printf("\033[y;xH" );

Reply

Marsh Posté le 23-02-2002 à 22:40:23    

slvn a écrit a écrit :

si ca marche je prefere ca:)
 
..la commande sinon, etait : printf("\033[y;xH" );  




essaie et dis moi, ca fait 2 ans que j'ai pas fais de C


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 23-02-2002 à 22:51:28    

la commande doit etre bonne (locatexy) mais -> "undefined reference" donc, peut etre qu il me manque un certaintruc a inclure

Reply

Marsh Posté le 23-02-2002 à 23:47:26    

slvn a écrit a écrit :

la commande doit etre bonne (locatexy) mais -> "undefined reference" donc, peut etre qu il me manque un certaintruc a inclure  




nan pourtant:
void locatexy( x, y );
faut mettre des coordonées textes je crois donc pas plus de 80x25


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 23-02-2002 à 23:55:23    

Si on veut faire des trucs de ce genre proprement, il vaut mieux utiliser une bibliothèque curses. Là, tu as accès au terminal vu comme un tableau, à la mise en forme, à des routines d'entrée plus pratiques, etc.

Reply

Marsh Posté le 23-02-2002 à 23:56:11    

je crois que le gotoxy(int x,int y); est mieux !

Reply

Marsh Posté le 23-02-2002 à 23:56:11   

Reply

Marsh Posté le 24-02-2002 à 00:08:50    

curse a l air mieux, mais j arrive pas trop a le faire marcher :
notement la fonction pour supprimer l echo marche pas des masse
 
et pour pouvoir prend un caracte au clavier,  
j ai fait :
thread + system("/bin/stty -cbreak" ) + getchar;
 
(alors que la commande cbreak de curse aurait du marcher)

Reply

Marsh Posté le 24-02-2002 à 00:21:58    

slvn a écrit a écrit :

curse a l air mieux, mais j arrive pas trop a le faire marcher :



C'est vrai qu'il est chiant à initialiser.
J'ai mis un truc comme ça :

Code :
  1. WIN=initscr();
  2.   if(couleur) {
  3.     start_color();
  4.     init_pair(1,COLOR_GREEN,0);
  5.     // snip quelques autres pareils
  6.   }
  7.   keypad(WIN,TRUE);
  8.   cbreak();
  9.   halfdelay(2);
  10.   noecho();
  11.   timeout(200);
  12.   refresh();
  13.   ecran_ok=1;


 
Le halfdelay et le timeout, c'est redondant je crois, mais je m'en fous, ça marche. En l'occurence, il retourne au bout de 200 ms si rien n'a été tapé.

Reply

Marsh Posté le 24-02-2002 à 00:36:56    

le non-echo est ok, mais j ai l impression que je peux meme pu saisir de caractere (avant j avias des inscript voulue pour chaque caractere, masi la pu rien)

Reply

Marsh Posté le 24-02-2002 à 00:44:05    

C'est peut-être le timeout. Si tu n'as besoin de rien faire tant qu'une touche n'est pas tapée, vire tout ça. Pour plus de détails, la manpage de cbreak (enfin, c'est la même pour toutes ces fonctions) est bien foutue et explique bien quoi choisir.

 

[jfdsdjhfuetppo]--Message édité par Jar Jar--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 24-02-2002 à 00:55:41    

oui je viens de regarder, la page du manuel, elle est bien fait ene effet, je pense qeu je trouverais toute le infos necessaires
 
sinon, cette partie la (pour saisir une touche), tu la mets dnas un thread ??

 

[jfdsdjhfuetppo]--Message édité par slvn--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 24-02-2002 à 01:02:43    

slvn a écrit a écrit :

sinon, cette partie la (pour saisir une touche), tu la mets dnas un thread ??



Ce n'est pas obligé, ça dépend de la structure de ton programme. S'il ne fait rien tant qu'on n'appuie pas sur une touche, et qu'il finit toutes ses actions avant de regarder la suivante, pas besoin de threads. Par contre, s'il y a un dorsal qui fait des trucs, ça s'impose.
Note au passage, j'ai eu des plantages avec ncurses 5.0 et les threads, il vaut mieux prendre la version 5.2 dans ce cas.

Reply

Marsh Posté le 24-02-2002 à 01:05:50    

j ai besoin de thread, alors:)
 
je viens de faire un mini test, noecho + cbreak, marche bien
 
mais la je peux pu rien afficher -> printf ne marche pu ?!

Reply

Marsh Posté le 24-02-2002 à 01:13:17    

slvn a écrit a écrit :

mais la je peux pu rien afficher -> printf ne marche pu ?!



Ah bin non, il faut utiliser mvprintw, qui marche pareil, mais qui va écrire à un endroit précis du terminal. Voir aussi mvaddnstr, et tous les machins tordus qui vont avec.

Reply

Marsh Posté le 24-02-2002 à 01:17:08    

ok, je vais jeter un coup d oeil

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed