Bonjour à tous .
J'ai créé un programme c++ mais il est affreusement désordonné .
Personne ne comprend ce que j'écris et j'ai le sentiment qu'il est plus long que nécessaire .
Vous pourriez me donné quelque astuce ?
La multiplication des fichier avec l'extention ".h" n'as rien arrangé .

PS: Désolé pour l'orthographe je fais de mon mieux .

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
scors.cpp

                   /* fichier de base */
                    
//le fichier à ouvrir peut étre modifié simplement en changean la constante Nom et la somme gagne 
//juste en modifian la variable : ValeurAjou toute deux dans "variable.h"
#include <fstream>
#include <iostream>
#include <sstream>

using namespace std;
                                   
int main(int nNumberofArgs , char* pszArgs[])
{
 # include <variable>//je delegue la responssabilité de cree les variable à variable.h


// cette parti ne sert que pour plus tard dans le listing le but est de 
// détérminé les valeur des caractéres de l'ordianteur sous lequel il tourne 
// Le faire dans une classe ne serait pas une mauvaise idée mais je comprend pas
// comment on utilise une fonction 

char Carach[2]= "0" ;
int nat = 0 ;
for (; ; )// a partir du 0 je peut deviné les 9 autre chiffre 
{
    nat = nat +1 ;
if ( (char) nat == Carach[0]  )
{ break;}
}
// maintenan je vois pour la virgule : j'en aurez besoin aussi 
char Caravir[2] = ",";
int vir = 0 ;

for (; ; )
{if ( Caravir[1] == (char)  vir )
{break ; }
vir ++ ;
}



// finit: maintenan que c'est fais on passe au chose sérieuse :
    
ifstream* pFileStream = new ifstream (Nom);//ouvre le fichier contenu dans nom
    if (!pFileStream->good()) //si l'ouverture n'est pas bonne
          {
    cout << "impossible d'ouvrir :"  
         << Nom 
         <<"\n"
         <<"le fichier va etre reecri "
         <<"si vous jouez pour la premier fois c'est normal ..."  
         << endl ;  
         system ("PAUSE");
         ValeurDebu = 0 ;
         #include "operation.h"//delegation de l'operation
         ofstream my(Nom);//ouvre le fichier  contenu dans la constante "Nom"
      my << ecriture  //ecrir la valeur de "ecriture"  dans le fichier texte 
         << ","
         << endl ; //fin 
    cout << "resultat :"<< ecriture <<"\n"; //affiche le resultat
         system ("PAUSE");
          
         return 0; //fin du programme 
          } 
else //si non
{

for(; ; )//boucle sans argument donc qui ne se termine pas  mais qui permet l'utilisation de break
{
  char lecture[256];  
 pFileStream -> getline( lecture,256 );//en gros il attibu les caractere du texte à la chaine 
 //de caractere  lecture de 256 caractere   

 if (pFileStream -> fail())//permet de rendre le programme plus robuste
 {
     break;
 }  
  
  cout<< "somme actuel :" << lecture << "\n";
  system ("PAUSE");
  cout<<"additione à :\n" << ValeurAjou << "\n"; 
  system ("PAUSE");
  
  int i = 0 ;
 for(; ; )//boucle infini
{
       if (lecture[i] == (char) vir )// si le caractere est une virgule 
       { cout << "nat = " << nat << "\n";
            cout << i << ":"<<< "\n" ;           
         i= i - 1 ; // on fais en sorte que i possede les coordoné du premier chiffre avans la virgule
         cout << " fin de la boucle infini 1 i= "<< i << "\n" ;
         cout << " ------------------------- \n";
         break ;//et fin de la boucle
         }            
         i++ ; // i + 1 
} // cette boucle remplace avantagesement les centaine de ligne avec if de la verssion 1.1 et 1.2 

int m = 1 , c = 0 , r = 0;
i = i -1 ;
for (; ; )
{
  
    cout << i <<" = " << lecture[i]<< "\n" ;
c = (char) lecture[i] ;
cout << c << "\n" ;

#include <instin>
cout << r << " fois " << m <<" eguale " << r*m << "\n";

ValeurDebu = ValeurDebu + ( r * m); // r (retour) represente l'unité et m le multiple de 10 
                                   // par exemple 123 = 1*3 + 2 * 10 + 1 * 100 
                                   //c'est l'idee ici : cree un nombre par couche de 10 
                                   //l'avantage est que se sistem n'a pas de limite 
cout << "ValeurDebu = " << ValeurDebu << "\n" ;
system ("PAUSE");

i= i - 1 ;
m = m * 10 ;
if (i < 0) {break;}
} 
 //ci dessou c'est un cas impossible qui revelle la triche de l'utilisation
 //ou un bug inatendu .
 if (ValeurDebu < ValeurAjou)//ça arrive quand on demande la valeur d'un caractere
 { 
  cout <<"erreur :resultat improbable !\n";
  cout <<"soit il y a eu une erreur suite à une tricheri \n";
  cout <<"soit vous étes arrivée à la limite .\n";
  cout <<"(ce qui est peu probable )\n" ; 
  cout <<"reinitialisasion par defo ... "<<"\n" ;  
  cout <<" vous reparte a 50 \n" ;     
  
  system ("PAUSE");
 
  ValeurDebu = 50 ;//comme la somme est impossible on la defini arbitraireman à 50
 }
 #include <operation>   //je l'ai delegué mais j'était pas obligé vu la taille de l'operation
 cout <<  ValeurDebu << "+" << ValeurAjou << "\n";//on  voi ce  qu'il ce passe comme 
  //sa perssone ne peut refuté le calcull (tant qu'il est vrai)
  cout << "resultat :"<< ecriture <<"\n"; 
  system ("PAUSE");
 
    //ecriture de la valeur dans le fichier:
    ofstream my(Nom);//on reouvre le fichier (on le cree si il existe pas 
    my << ecriture  //on ecrit la valeur comptenu dans ecriture
       <<","
       << endl ; //c'est fini pour l'ecriture 
       return 0; //fin du programme 
}
}    
}//fin du listing
 instin.h // j'ai developé ce programme pour la converssion d'un caractere qui represente un nombre 
//en une valeur mais faites en se que vous voulez ... 
#include "caractere.h"
if ( c == (char) nul )
{
 r = 0 ;   
} 

if (c == (char) un ) 
{
 r = 1 ;   
} 

if ( c == (char) deux )
{
 r = 2 ;   
} 

if ( c == (char) trois )
{
 r = 3 ;   
} 

if ( c == (char) quatre )
{
 r = 4 ;   
} 

if ( c == (char) cinq )
{
 r = 5 ;   
} 

if ( c == (char) six )
{
 r = 6 ;   
} 

if ( c == (char) sept ) 
{
 r = 7 ;   
} 

if ( c == (char) huit )
{
 r = 8 ;   
} 

if ( c == (char) neuf )
{
 r = 9 ;   
} 

caractere.h


  
//je cree les variable pour definir les numeros de caractére 
//cette fois ce listing n'est pas aussi indépendant malheuresement 

int nul = nat , un =  nat + 1 , deux = nat + 2 ,trois = nat + 3 ; 
int quatre = nat + 4 , cinq = nat + 5, six = nat + 6 ;
int sept = nat + 7 , huit = nat + 8 , neuf = nat + 9  ;

opreration.h

#include "iostream"
ecriture = ValeurDebu + ValeurAjou;

variable.h

double ecriture , ValeurAjou = 50 ,ValeurDebu = 0 ;//en double pour eviter l'arrivé à la limite 
                                                    //(du moin dans une vie)
const char Nom[] = "scor.txt"; //la constante Nom de type char contien le nom du fichier