Fenetre et console en C [Résolu]

Signaler
Messages postés
8
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
1 décembre 2007
-
Messages postés
8
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
1 décembre 2007
-
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

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
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)...
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
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);
Messages postés
8
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
1 décembre 2007

Il faut donc que je crée une variable Handle Hout?
et que signifie std_output_handle ?
Merci d'avance
Torn.
Messages postés
8
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
1 décembre 2007

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?