Salut a tous,
je suis actuellement sur un projet développé en C++ avec SDL et certains j'ai quelques soucis d'exécution... mon programme plante! toute fois j'ai remarqué au cours de mes test pour trouver l'erreur, qu'il suffisait de rajouter une ligne de code pour résoudre le problème:par exemple, une fonction qui charge un fichier mais qui fait tout planter:
Code : Sélectionner tout - Visualiser dans une fenêtre à part system("PAUSE");et la meme mais avec la ptite commande 'magique' qui ne plante pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 //on ouvre le fichier passé en parametre ifstream fichier(_adresse_fichier.c_str(), ios::in); //si le fichier est bien ouvert if(fichier!=NULL){ //on creer des variables temporaires int identifiant; string adresse_image; int nombre_collonne; int nombre_ligne; Sprite* p_sprite = NULL; //tant qu'on est pas a la fin du fichier while(!fichier.eof()){ //on lit le fichier fichier >> identifiant >> adresse_image >> nombre_collonne >> nombre_ligne; //création du sprite creer_sprite(); //on cherche le sprite p_sprite = avoir_p_sprite(-1); //modification du sprite p_sprite->charger_image(adresse_image.c_str(),nombre_collonne,nombre_ligne); //assignation de l'identifiant p_sprite->modifier_identifiant(identifiant); } //fermeture du fichier fichier.close(); }bref, tout ça c'est génial... a part que je ne sait toujours pas d'où vient le problème et que j'ai une jolie fenêtre de console qui me demande d'appuyer sur une touche pour continuer à chaque fois... bref je ne comprend pas comment cette simple commande peut tout changer comme ça (à signaler que je n'utilise pas de thread dans ce projet). d'autant plus qu'avant, toujours sur le même projet, j'avais trouver le moyen de résoudre un bug qui faisait planter le programme au début de l'exécution simplement (ou pas) en ajoutant un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 //on ouvre le fichier passé en parametre ifstream fichier(_adresse_fichier.c_str(), ios::in); //si le fichier est bien ouvert if(fichier!=NULL){ //on creer des variables temporaires int identifiant; string adresse_image; int nombre_collonne; int nombre_ligne; Sprite* p_sprite = NULL; //tant qu'on est pas a la fin du fichier while(!fichier.eof()){ //on lit le fichier fichier >> identifiant >> adresse_image >> nombre_collonne >> nombre_ligne; //création du sprite creer_sprite(); //Copperfield en action! system("PAUSE"); //on cherche le sprite p_sprite = avoir_p_sprite(-1); //modification du sprite p_sprite->charger_image(adresse_image.c_str(),nombre_collonne,nombre_ligne); //assignation de l'identifiant p_sprite->modifier_identifiant(identifiant); } //fermeture du fichier fichier.close(); }à la fin du code, juste avant le dernier return 0;
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("youhou...");
peut être est-ce juste une erreur de conception... mon programme est surement bourré de problème mais là je ne comprend pas. ou peu être est-ce un problème avec le compil? je suis sous CodeBlocks...
quelqu'un aurais t'il une idée du pourquoi du comment? je peut donner le code si quelqu'un a le courage de se plonger dedans pour comprendre...
Partager