begin process at 2012 05 30 08:33:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

SDL: La commande printf(""); n'affche rien!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SDL: La commande printf(""); n'affche rien!

mardi 10 août 2004 à 02:20:24 | SDL: La commande printf(""); n'affche rien!

yugiohjcj

Bonjour,
voici la source de mon programme:
#include <stdio.h>
#include <stdlib.h>
#include <SDL\SDL.h>

#define true 1

int main(int argc, char *argv[])
{
printf("\a");
if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ) { //Initialisation de SDL
fprintf(stderr, "\aImpossible d'initialiser SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
SDL_EnableUNICODE(1); //Activer l'unicode

SDL_Surface *screen; //Chargement du mode vid?o
while(true){
screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
if ( screen == NULL ) {
fprintf(stderr, "\aImpossible de passer en 640x480 en 16 bpp: %s\n", SDL_GetError());
exit(1);
}
SDL_Event event;
SDL_WaitEvent(&event);
switch (event.type) {
case SDL_KEYDOWN:
printf("La touche %s a été préssée!\n", SDL_GetKeyName(event.key.keysym.sym));
break;
case SDL_QUIT:
exit(0);
}
}
return(0);
}//Fin de la boucle main()

Et la fonction printf(""); n'affiche aucun texte. Par exemple, l'instruction printf("\a"); au début du programme ne fait pas sonner le haut parleur de ma tour. Aussi printf("La touche %s a été préssée!\n", SDL_GetKeyName(event.key.keysym.sym)); il n'y a aucun texte qui s'affiche quand je tape une touche...

Pour compiler j'utilise minGW avec la commande:
gcc -o xcom.exe xcom.c -lmingw32 -lSDLmain -lSDL -mwindows
Peut-être ça vient de ça?

Aidez-moi c'est complètement chelou comme problème...

/*Acheter, Vendre, Echanger des cartes Yu-Gi-Oh! Jeu de Cartes à Jouer sur yugiohjcj.free.fr*/
mardi 10 août 2004 à 09:37:06 | Re : SDL: La commande printf(""); n'affche rien!

pinderlot

t'as pensé à vider le tampon en entrée ?

essaye une fonction du type fflush(stdin);

idem en sortie...

-----------------------------------------------
Tout ce qui ne tue pas rend plus fort !
mardi 10 août 2004 à 10:03:24 | Re : SDL: La commande printf(""); n'affche rien!

imanewin32

assure toi que "\a" ne corespond pas à un caractère spécial du genre \r ou \n.
essaye printf avec une autre chaine
mardi 10 août 2004 à 10:05:36 | Re : SDL: La commande printf(""); n'affche rien!

imanewin32

oui c'est ça \a est une sonette!!!!
mardi 10 août 2004 à 12:27:36 | Re : SDL: La commande printf(""); n'affche rien!

Funto66

Nan, en fait SDL redirige automatiquement les flux stdout, stdin et stderr vers des fichiers stdout.txt...etc.
Si tu veux éviter ça, tu peux faire ça (du moins, sous Visual C++ ça marche) :
freopen("CON", "w", stdout);
freopen("CON", "r", stdin);
freopen("CON", "w", stderr);
au début de ton main().

D'ailleurs, si quelqu'un pouvait m'affirmer que ça marche aussi sous Dev-C++ je liu serais reconnaissant ^^


Patience et longueur de temps font plus que force
ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
mardi 10 août 2004 à 18:49:05 | Re : SDL: La commande printf(""); n'affche rien!

yugiohjcj

OK. Je vais essayer ces solutions.
Et le fichier stdout.txt, il se trouve dans le dossier ou est enregistré le fichier executable ?

/*Acheter, Vendre, Echanger des cartes Yu-Gi-Oh! Jeu de Cartes à Jouer sur yugiohjcj.free.fr*/
mercredi 11 août 2004 à 03:06:38 | Re : SDL: La commande printf(""); n'affche rien!

Funto66

Le fichier stdout.txt se trouve dans le dossier où s'exécute ton exécutable, c'est à dire dans le même dossier que l'exécutable si tu double-cliques dessus depuis l'explorateur par exemple ^^
Mets un printf ou un cout et tu le verras ton fichier ;)

Patience et longueur de temps font plus que force
ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
mercredi 11 août 2004 à 03:33:09 | Re : SDL: La commande printf(""); n'affche rien!

yugiohjcj

Ah ouais exact.
C'est étonnant ça...Je croyais que SDL ne toucherai pas à l'action d'une commandes tel que printf("");
Merci. Et peut-on choisir quel sera le nom du fichier? Parce que je ne voudrai pas qu'il porte le nom de stdout.txt. Et encore mieux, peut-on rediriger les informations de printf(""); autre par que dans un fichier?
/*Acheter, Vendre, Echanger des cartes Yu-Gi-Oh! Jeu de Cartes à Jouer sur yugiohjcj.free.fr*/
mercredi 11 août 2004 à 19:43:44 | Re : SDL: La commande printf(""); n'affche rien!

Funto66

Ben ouais c'est ce que je disais plus haut; faut utiliser la fonction freopen().
En fait, au niveau du C, la console est considérée comme un fichier, ou disons plutôt qu'elle est considérée comme un flux. Les fichiers sont aussi des flux. C'est pour cela qu'on peut utiliser printf() pour écrire sur la console ou pour écrire sur fichier, car printf est l'équivalent d'un sprintf(stdout, "Ton texte");

stdout est un fichier qui correspond par défaut à la console, comme stdin (pour les scanf() par exemple) ou stderr (pour les erreurs).

Mais avec la fonction freopen() tu peux reouvrir un flux existant vers un
autre fichier (ou vers la console); pour que printf() écrive sur le fichier "printf.txt" par exemple, il faudra que tu mettes au début de ton main() :
reopen("printf.txt", "w", stdout);

La valeur spéciale "CON" pour le 1er paramètre (du moins sous Visual C++) correspond à la console.

Voili voilou

Patience et longueur de temps font plus que force
ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
mercredi 11 août 2004 à 21:43:13 | Re : SDL: La commande printf(""); n'affche rien!

yugiohjcj

Ah super explication.
Là j'ai tous les renseignements.
Merci beaucoup. ;-)

/*Acheter, Vendre, Echanger des cartes Yu-Gi-Oh! Jeu de Cartes à Jouer sur yugiohjcj.free.fr*/


Cette discussion est classée dans : printf, commande, include, sdl, event


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec la librairie sdl et code::blocks [ par BencoAndCo ] Bonjour, J'ai un problème avec la lib sdl et code::blocks quand je compile le prog suivant : #include #include #include int main(int argc, ch Rotation de forme [ par boubz013 ] Bonsoir, je suis débutant et fasciné en opengl, mais je m'oppose à un probléme, en faite j'essaie de faire tourner mes forme geometrique à l'aide des condition type char [ par Adict ] Bonjour voila j'ai un problème :p j'aime faire de petit programme pour m'entrainer et faire des challenges mais la je bloque [^^mad5] en gros j'aime aide pour initialisé est afficher une structure [ par Rido159 ] [b]bonjour je suis encore débutant en C j apprend les structures pour l instant , aider moi svp[/b] [b][u]Dans #include "main.h" :[/u][/b] [code=cpp] rectification dune code C et/ou aide sur l'algorithme [ par negets ] bonjour, besoin d'aide; j'aimerai dégager l'algorithme de ce code afin de le programmer sous matlab je connais plus rien en C et C++(je commence à lir Compiler un programme écrit en C++ utilisant une bibliothèque C. Erreurs... [ par Virus721 ] Bonjour tout le monde ! :) Voila j'essaye de me coder un petit jeu avec la bibliothèque SDL 1.2 et l'aide du site du zéro. J'essaye autant que possib [Xcode]Aide integrer image [ par mirmoleboss ] Bonjour, Voilà j'ai fait ce petit code mais il ne marche pas enfin il marchait mais l'intégration d'une image ne marche pas, je ne vois pas d'où vient Problème d'écran bleu lors de l'éxécution de mon programme [ par HarlockLeFleau ] Bon, alors, en fait j'ai un petit problème: Voyez-vous je me suis récemment lancé dans la programmation pour openGL sous Windows. Alors je code sous N Dictionnaire de traduction [ par JSG19 ] Salut j'ai un dictionnaire a programmer a chaque fois que je programme soit j'ai le premier mot soit le dernier ou toute la liste de traduction donc fenetre [ par keegs ] Bonsoir Je débute dans la programmation, mais voila j ai un petit soucis, je n arrive pas a résoudre le problème a chaque fois que je mais compiler i


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,747 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales