Fenetre et console en C

Résolu
cs_Tornadoboy Messages postés 8 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 1 décembre 2007 - 27 nov. 2007 à 18:40
cs_Tornadoboy Messages postés 8 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 1 décembre 2007 - 28 nov. 2007 à 19:26
Bonjour,

Je suis en ce moment sur la création d'un programme en C qui nécessite l'utilisation
d'une console et d'une fenêtre. Après ouverture des deux, je fait bouger à l'écran un
objet de droite à gauche ( et inversement). De cet objet, je récupère les positions x et y
et je voudrai les afficher dans ma console en temps REEL.. Lorsque je met un printf
simple, cela et enregistrer dans un fichier créé dans mon dossier.. Mais comment faire
pour que le printf agisse sur la console et non sur ce fichier?

Merci d'avance.

Tornadoboy.

ps: je travaille sous Code Block avec la librairie SDL.

4 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
28 nov. 2007 à 18:17
Tu m'as pas précisé si tu veux utiliser les API...
STD_OUTPUT_HANDLE est simplement une constante qui indique à GetStdHandle quel handle retrouver; dans ce cas précis on demande le handle correspondant au buffer de sortie de la console associée à l'application. Tu peux aussi demander celui de l'entrée (STD_INPUT_HANDLE); je te suggère de jeter un coup d'oeil sur MSDN à propos de GetStdHandle.
Quant à "créer une variable HANDLE hOut" oui pourquoi ça te dérange? Je ne sais pas ce que tu entends par créer, il suffit de la déclarer et de l'initialiser avec GetStdHandle cf post précédent. Cette variable te permettra d'utiliser plusieurs fois WriteFile() sans appeler à chaque fois GetStdHandle; de plus tu peux tester si ça marche pas:
if(hOut==INVALID_HANDLE_VALUE)...
3
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
27 nov. 2007 à 22:36
Je suppose que ton exe est une application Win32 (non console) à la base. Dans ce cas, faut écrire dans le handle sortie de la console; en API ca donne quelque chose comme:
AllocConsole();
HANDLE hOut=GetStdHanle(STD_OUTPUT_HANDLE);
DWORD nRead;
WriteFile(hOut,"...\n",4,&nRead,NULL);
0
cs_Tornadoboy Messages postés 8 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 1 décembre 2007
28 nov. 2007 à 17:39
Il faut donc que je crée une variable Handle Hout?
et que signifie std_output_handle ?
Merci d'avance
Torn.
0
cs_Tornadoboy Messages postés 8 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 1 décembre 2007
28 nov. 2007 à 19:26
Et ..il n'y a pas une façon plus simple.. Par ce que celle ci je la comprend pas vraiment..
On m'a dit que :
fprintf(stdout,"x=%d\n",x);

me permettait de le faire, seulement ça ne marche pas, sa enregistre
dans stdout.. Il n'y a pas une quelquonque configuration qui me
permette d'utiliser mon printf dans ma console et non dans stdout?
0
Rejoignez-nous