Probléme compilateur visual 2005

Probléme compilateur visual 2005 - C++ - Programmation

Marsh Posté le 03-10-2007 à 12:22:16    

Bonjour tout le monde on a un petit probléme de compilation dans c++ voici notre main:
 
void main()
{
 FILE *f1,*x,*y,*z;
 int p,j,k,n,i,pos;
 char c,;
 char t1[20];
 int t2[4];
 float num2;
 
 f1=fopen("c:\\tp2ex1.txt","r" );
x=fopen("coordonnées1.txt","w" );
y=fopen("coordonnées2.txt","w" );
z=fopen("coordonnées3.txt","w" );
do
 
{
 if(fgetc(f1)==')')
  n++;
}while(!feof(f1));
do
{
 j=1;
 fseek(f1,pos,0);
 
do
{
 c=fgetc(f1);
 t1[j]=c;
 j++;
}while(c!=')');
pos=ftell(f1);
 
 
for(k=1;k<=j;k++)
{
 if (t1[k]==',')
  t2[p]=k;
 p++;
}
 
for(k=1;k<=t2[1];k++)
{
 stocker(t1[k],x);
}
for(k=t2[1];k<=t2[2];k++)
{
 stocker(t1[k],y);
}
for(k=t2[2];k<=j;k++)
{
 stocker(t1[k],z);
}
}while(!feof(f1));
 
fseek(x,0,0);
restocker(x);
fseek(x,0,0);
fseek(y,0,0);
restocker(y);
fseek(y,0,0);
fseek(z,0,0);
restocker(z);
fseek(z,0,0);
 
do
{
fprintf(x,"%f",num2);
}while(!feof(x));
 
}

 
 
A la fin ca nous affiche  4 warnings:
 
 warning C4700: uninitialized local variable 'n' used
 warning C4700: uninitialized local variable 'pos' used
 warning C4700: uninitialized local variable 'p' used
 warning C4700: uninitialized local variable 'num2' used
 
Merci de votre aide,on est assez novices dans l'utilisation de c++  :jap:

Reply

Marsh Posté le 03-10-2007 à 12:22:16   

Reply

Marsh Posté le 03-10-2007 à 14:30:33    

Utiliser les balises quand vous postez du code, s'il vous plait, en cliquant sur les boutons "C/C++" ou "Fixe" s'il vous plait.
 
Les quatres messages concernent des problèmes similaires. Voici des explications pour le premier.
 
Vous avez déclaré la variable "n" sur la pile, et donc, elle n'est pas initialisée par défaut, car la pile n'est jamais initialisée.
Votre premiere utilisation de "n" est

n++;

La variable est incrémentée.
Question : Que contenait "n" avant son incrémentation ?
Réponse : N'importe quoi, car elle n'a pas été initialisée.

Reply

Marsh Posté le 03-10-2007 à 14:36:50    

olivthill a écrit :

Utiliser les balises quand vous postez du code, s'il vous plait, en cliquant sur les boutons "C/C++" ou "Fixe" s'il vous plait.
 
Les quatres messages concernent des problèmes similaires. Voici des explications pour le premier.
 
Vous avez déclaré la variable "n" sur la pile, et donc, elle n'est pas initialisée par défaut, car la pile n'est jamais initialisée.
Votre premiere utilisation de "n" est

n++;

La variable est incrémentée.
Question : Que contenait "n" avant son incrémentation ?
Réponse : N'importe quoi, car elle n'a pas été initialisée.


 
Merci pour votre réponse,mais comment on utilise les balises?  :sweat:

Reply

Marsh Posté le 03-10-2007 à 14:46:56    

le petit bouton C/C++ lors de l'edit te génère un [ cpp ] [ / cpp ]
 
sinon c'est du C ou du C++ que tu veux/doit faire ? :D
 

Reply

Marsh Posté le 03-10-2007 à 14:50:42    

C'est du c++ que je dois faire et ou je dois mettre cette fameuse balise,au début du main ?

Reply

Marsh Posté le 04-10-2007 à 11:38:09    

Salut,
Les balises tu les mets dans ton sujet en encadrant ton code,
genre si tu met les balises comme suit (sans les espaces):
 
[ cpp ]for(k=t2[1];k<=t2[2];k++)
{
 stocker(t1[k],y);
} [ / cpp ]
 
ça donnera:

Code :
  1. for(k=t2[1];k<=t2[2];k++)
  2. {
  3. stocker(t1[k],y);
  4. }


 
Sinon pour ton problème olivthill t'as répondu, je suppose que tu veux que ton n soit initialisé à une valeur précise avant le

Code :
  1. n++;


il faut donc lors de la déclaration ou juste après en mettre une, par exemple:

Code :
  1. n = 0;


 
Personnellement pour être sur de ne pas rencontrer de problème j'initialise toujours les variables à 0 (ou NULL) lors des déclarations, dans ton cas ça serait:

Code :
  1. FILE *f1 = NULL, *x = NULL, *y = NULL, *z = NULL;
  2. int p = 0, j = 0, k = 0, n = 0, i = 0, pos = 0;
  3. ...


 
@+


Message édité par grostony le 04-10-2007 à 11:39:17
Reply

Marsh Posté le 04-10-2007 à 16:48:08    

Merci beaucoup les mecs,c'est bon c'est reglé le programme trourne trés bien.Vous avez largement confirmé le réputation de ce site :jap:

Reply

Marsh Posté le 05-10-2007 à 10:11:53    

Derien et je confirme pour le réputation de ce forum, j'ai eu 2 questions relatives à Qt que j'ai posté sur ce forum et sur celui de developez.net (qui est, d'après le nom, sensé être un forum de developeurs), les seules réponses que j'ai eu c'est sur ce forum, et des réponses qui ont aidé je précise.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed