Bonjour tout le monde,

Je viens de faire un petit programme qui fonctionne très bien quand je le lance depuis Visual Studio, mais lorsque je le lance via l'executable, le fenetre s'ouvre puis se ferme immédiatement sans que l'on ne puisse lire ou entrer quoi que ce soit... Pourtant il y a des invites de commandes et j'ai meme pris soin de mettre un getch(); (avec include conio.h) et system("PAUSE");
Comment est-ce possible?

Voici mon code :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
#include <windows.h>
#include "..\lecture\lecture.h"
#define TAILLE 10
#define MAX 1200
 
void Color(int couleurDuTexte,int couleurDeFond);
void ViderBuffer(void);
 
 
main()
{
   FILE *pstream;
   char* dest, *deja;
   char copie[MAX], c;
   float km, total;
   int encore=1;
 
   total=km=0;
 
   system ("color F1");
   Color(0,15);//Couleur par défault
   printf("--------------------------------------------------------------\nCalcul des Km    ");
   Color(4,15);//texte rouge sur fond blanc
   printf("(ATTENTION : Respecter les majuscules)\n");
   Color(0,15);//Couleur par défault
   printf("--------------------------------------------------------------\n\n");
 
   while(encore){
      pstream=fopen("km.txt","rt");
      if(!pstream)
      {
         printf("Ouverture de fichier impossible\n");
         return 1;
      }
      dest=(char*)malloc(TAILLE*sizeof(char));
      Lire_Chaine("Destination ? (taper 1 pour terminer)", TAILLE, dest);
 
      fgets(copie,MAX,pstream);
      //while(fgets(copie,MAX,pstream),!(feof(pstream)||ferror(pstream)));      //ERREUR DE FIN DE FICHIER SYSTEMATIQUE
      deja=strstr(copie,dest);
      //printf("%s",deja);   //se positionne sur la premiere lettre de dest
      if(!deja)
      {
         fclose(pstream);
         pstream=fopen("km.txt","at");
            if (!pstream)
            {
            printf("Ouverture de fichier impossible\n");
            return 1;
            }
         printf("Nombre de Km (aller simple) ? ");
         scanf("%f",&km);
         total+=(2*km);
         printf("Total partiel des km : %f\n\n",total);
         fputs(dest,pstream);
         fprintf(pstream,".%f.",km);
         if(ferror(pstream)) return 1;   
         ViderBuffer();
      }
      else
      {
         deja=strchr(deja,'.');
         deja++;
         //printf("%s",deja);     //Position où il commence à encoder les chiffre -> km
         km=atoi(deja);
         //printf("%f",km);
         total+=(2*km);
         printf("Total partiel des km : %f\n\n",total);
      }
 
      fclose(pstream);
      if(strstr(dest,"1"))
         encore=0;
      free(dest);
      km=0;    // Par sécurité
   }
 
   Color(15,0);   //texte blanc sur fond noir
   printf("\n\nNOMBRE TOTAL DE KM = %f\n",total);
   Color(0,15);   //Couleur par defaut
   system("PAUSE");
   getch();
   return 0;
}
 
 
 
 
void Color(int couleurDuTexte,int couleurDeFond)
{
        HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);    //include <windows.h>
        SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
 
void ViderBuffer(void)    //Ne fonctionne pas sous Linux
{
   #ifdef _WIN32     //vidage buffer car \n en mémoire clavier dû au fprintf
      fflush(stdin);
   #endif
Merci d'avance pour votre aide !!!