[C - Ncurses] Hello World : Affichage désespérement vide...

Hello World : Affichage désespérement vide... [C - Ncurses] - C - Programmation

Marsh Posté le 21-04-2007 à 12:43:04    

Salut à tous :hello:,
 
Dans le cadre d'un projet beaucoup plus gros, il se trouve que je dois me servir de l'interface NCurses sous Linux (je tourne sous Ubuntu 6.10). Ayant potassé le Howto hier, j'ai tâché de me lancer dans divers tests afin de bien assimiler les commandes de bases.
 
J'ai jeté un oeil sur les exemples de programmes donnés, en commençant sur le HelloWorld de base :
 

Code :
  1. #include <ncurses.h>
  2. int main()
  3. {
  4. initscr();   /* Start curses mode     */
  5. printw("Hello World !!!" ); /* Print Hello World    */
  6. refresh();   /* Print it on to the real screen */
  7. getch();   /* Wait for user input */
  8. endwin();   /* End curses mode    */
  9. return 0;
  10. }


 
Ce programme exemple fonctionne très bien, il n'y a aucun souci pour celui-là.
 
J'ai essayé de l'adapter en créant une nouvelle fenêtre, que voici :  
 

Code :
  1. #include <ncurses.h>
  2. int main()
  3. {
  4.   initscr();
  5.   noecho();
  6.   cbreak();
  7.   curs_set(0);
  8.  
  9.   WINDOW* test = newwin(10, 80, 0, 0);
  10.   if (!test) { //newwin went wrong.
  11.     printw("ERROR with newwin\n." );
  12.     refresh();
  13.     getch();
  14.   }
  15.   wmove(test, 0, 0);
  16.   wprintw(test, "Hello World !! (on test window.)" );
  17.   wrefresh(test);
  18.   getch();
  19.  
  20.   delwin(test);
  21.   endwin();
  22.  
  23.   return 0;
  24. }


 
Et j'ai un affichage désespérément blanc sur mon terminal... J'ai potassé un peu les divers exemples donnés à droite et à gauche et je ne trouve vraiment pas. Je parie que c'est sûrement une bête erreur, mais quoi ? Quelqu'un pourrait-il m'apporter cette réponse ? :D


Message édité par Geddons le 21-04-2007 à 12:49:15
Reply

Marsh Posté le 21-04-2007 à 12:43:04   

Reply

Marsh Posté le 21-04-2007 à 12:54:45    

tu compile avec quoi ?
 
c'est pkg-config quoi ? j'ai essayé ncurses, libncurses... touve pas :s


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 21-04-2007 à 13:01:38    

Salut :hello:,
 

zecrazytux a écrit :

tu compile avec quoi ?


 
Voilà mes options de compilation exactes :  
 

Code :
  1. gcc --std=c99 --pedantic -Wall -W -Wmissing-prototypes -lncurses -o hello_world hello_world.c


 

Citation :

c'est pkg-config quoi ?


 
Là par contre je sais pas de quoi tu parles :D (Je suis relativement débutant sur Linux). J'ai du installer le package libncurses5-dev via le gestionnaire de dépôts APT (spécifique à la distribution Ubuntu si je ne m'abuse ?).
 

Citation :

j'ai essayé ncurses, libncurses... touve pas :s


 
Mes précisions peuvent-elles t'aider ? Si tu veux d'autres renseignements, je me ferai une joie de te les donner :jap:.  
 
Merci pour ta réponse  :jap: .

Reply

Marsh Posté le 21-04-2007 à 14:19:08    

Bon, j'suis vraiment paumé là :/.

 

Selon l'exemple trouvé ici :

 
Code :
  1. #include <stdio.h>
  2. #include <ncurses.h>
  3. int main()
  4. {
  5.         WINDOW *vin;
  6.         initscr();
  7.         start_color();
  8.         init_pair(1,COLOR_YELLOW,COLOR_BLUE);
  9.         init_pair(2,COLOR_BLUE,COLOR_YELLOW);
  10.         init_pair(3,COLOR_BLUE,COLOR_WHITE);
  11.         vin=newwin(12,40,13,0);
  12.         wmove(vin,0,5);
  13.         wprintw(vin,"Hello, World." );
  14.         wbkgd(vin,COLOR_PAIR(1));
  15.         wrefresh(vin);
  16.         getch();
  17.         delwin(vin);
  18.         endwin();
  19.         return 0;
  20. }
 

(avec init_scr() changé en initscr(), y avait apparemment soit une erreur de frappe soit une utilisation d'une autre version de ncurses)

 

Je devrais obtenir ça :

 

http://www.writeka.com/ed/sample_out.png

 

Et j'obtiens ça :

 

http://img85.imageshack.us/img85/5296/captureax8.png

 

:cry:

 

J'comprends plus rien :/.


Message édité par Geddons le 21-04-2007 à 20:15:08
Reply

Marsh Posté le 21-04-2007 à 14:40:19    

même probleme que toi, tes deux codes ne marchent pas...
pourtant les examples du hoxto : http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ marchent parfaitement.
 
pkg-config te donne les path de la librairie, permet de foutre les cflags :)
tres utile avec gcc:
 
gcc -o output fichiers.c     `pkg-config --cflags --libs malibrairie`


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 21-04-2007 à 15:44:59    

zecrazytux a écrit :

même probleme que toi, tes deux codes ne marchent pas...

 

:/. C'est quand même bizarre qu'il n'y ait pas moyen d'afficher le contenu d'une fenêtre secondaire, incluse dans stdscr... Si je fais mes exemples sur stdscr ça marche au poil ! :/

 
Citation :

pourtant les examples du hoxto : http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ marchent parfaitement.

 

Oui, je les avais testés aussi... j'arrive pas à comprendre pourquoi mes tests ne fonctionnent pas...

 
Citation :

pkg-config te donne les path de la librairie, permet de foutre les cflags :)
tres utile avec gcc:

 

gcc -o output fichiers.c     `pkg-config --cflags --libs malibrairie`

 

Hum ok merci, je comprends mieux :jap:. Sinon, tu n'as d'idée pour la résolution du problème j'imagine ? :(


Message édité par Geddons le 21-04-2007 à 15:45:15
Reply

Marsh Posté le 21-04-2007 à 15:47:49    

je commence le C seulement cette année et j'ai juste fas du GTK. non je n'ai pas d'idée, j'ai cherché un peu mais rien... et j'ai un peu de boulot a coté aussi désolé.


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 21-04-2007 à 15:55:29    

Pas de souci, merci pour ton aide :jap:. Y aurait-il un autre bon samaritain dans le coin ? :D

Reply

Sujets relatifs:

Leave a Replay

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