3 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 10/01/2012 à 23:27
Modifié par KX le 10/01/2012 à 23:27
int SauverPartie (int etatPartie)1) tu dois avoir un return dans tous les cas (tu n'en as pas dans le else)
2) tu ne te sers jamais de etatPartie
return(EXIT_FAILURE);
3) ça n'a pas vraiment de sens dans une fonction
fprintf(ptFile, "%d" , Partie[i]);
4) qu'est-ce que c'est Partie ?
Remarque : tu utilises fopen, et fprintf qui sont des fonctions du C, en C++ tu as ofstreamLa confiance n'exclut pas le contrôle
merci d'avoir repondus a mon post :
1) je sais que je devrais avoir un return mais je ne sais pas ou le placer j'ai donc glisser se return dans la partie écriture du fichier. ce qui me donne :
int SauverPartie ( int etatPartie)
{
ptFile = fopen("partie.txt","wt");
if(ptFile == NULL)
{
printf("ERROR");
}
else
{
fprintf(ptFile,"-\n");
fprintf(ptFile, "%d" , Partie[i]);
return(0);
fclose(ptFile);
}
}
2) je sais aussi que je ne me sert pas de etatPartie mais je ne sais pas a quelle moment je devrais m'en servir .....
1) je sais que je devrais avoir un return mais je ne sais pas ou le placer j'ai donc glisser se return dans la partie écriture du fichier. ce qui me donne :
int SauverPartie ( int etatPartie)
{
ptFile = fopen("partie.txt","wt");
if(ptFile == NULL)
{
printf("ERROR");
}
else
{
fprintf(ptFile,"-\n");
fprintf(ptFile, "%d" , Partie[i]);
return(0);
fclose(ptFile);
}
}
2) je sais aussi que je ne me sert pas de etatPartie mais je ne sais pas a quelle moment je devrais m'en servir .....
Utilisateur anonyme
11 janv. 2012 à 04:30
11 janv. 2012 à 04:30
Salut,
Comme dit par KX, il s'agit plus de C que de C++, mais ce n'est pas grave.
L'erreur que tu faisais, c'était le return(0); avant de fermer ton fichier. Celà avait pour effet de quitter ta fonction SauverPartie avant de fermer le fichier.
Quelques liens du site du zéro qui pourrait te servir :
Tutoriel sur le C
Tutoriel sur le C++
@++ :- )
Comme dit par KX, il s'agit plus de C que de C++, mais ce n'est pas grave.
int SauverPartie (int etatPartie){ ptFile = fopen("partie.txt", "wt"); if(ptFile == NULL){ fprintf(stderr, "ERROR"); return(1); { else{ fprintf(ptFile, "-\n"); fprintf(ptFile, "%d", Partie[i]); fclose(ptFile); } }
L'erreur que tu faisais, c'était le return(0); avant de fermer ton fichier. Celà avait pour effet de quitter ta fonction SauverPartie avant de fermer le fichier.
Quelques liens du site du zéro qui pourrait te servir :
Tutoriel sur le C
Tutoriel sur le C++
@++ :- )
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
11 janv. 2012 à 07:50
11 janv. 2012 à 07:50
Le return 0 avant de fermer le fichier n'est pas gênant en cas d'erreur puisque le fichier ne sera alors pas ouvert. Non ce qui est plus embêtant c'est de ne pas avoir un return dans tous les cas.
Remarque : si c'est juste pour renvoyer 0/1, autant renvoyer un booléen (true/false)
if (...) { .... return 1; } else { ... return 0; }
Remarque : si c'est juste pour renvoyer 0/1, autant renvoyer un booléen (true/false)