écriture dans un fichier

Signaler
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007
-
 Utilisateur anonyme -
Bonjour,



Je souhaite créer une méthode permettant d'écrire dans un fichier.

Mais cela ne marche pas!!

Le problème c'est que mon ofstream File est définit dans une condition if(), donc la variable est locale.

Le compilateur ne la voit pas en dehors de ce condition if().

Donc quand je mets if (!File ) il ne connait pas la variable.

Comment puis-je contourner ce problème?



Rmq : Ma variable NewFile me dit si je peux écraser mon fichier précédent ou ajouter à la suite de mon fichier précédent



Voici mon code :



int FileOutput::WriteFile(string toto, int NewFile)

{

if( NewFile == 0 )

{

ofstream File (FILE_NAME, ios::out);

}

else

{

ofstream File (FILE_NAME, ios::app);

} if (!File )

{

cerr << "Impossible d'ouvrir le fichier!" << endl;

return (-1);

} File << "Degats effectifs de l'arme : " << WeaponDamage << endl;



// Fermeture du fichier

File .close();

}



Si vous avez une idée, n'hésitez pas!

Bonne soirée!



Jo

5 réponses

Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

rectification, le code c'est :



int FileOutput::WriteFile(string toto, int NewFile)

{

if( NewFile == 0 )

{

ofstream File (FILE_NAME, ios::out);

}

else

{

ofstream File (FILE_NAME, ios::app);

} if (!File )

{

cerr << "Impossible d'ouvrir le fichier!" << endl;

return (-1);

} File << "ma variable : " << toto<< endl;



// Fermeture du fichier

File .close();

}

Je crois que cela ira(perso j'ai pa testé)tu me dira....mais je pense que l'idée est bonne
Médite sur le code suivant si ca compile pas car mon principe est bon.

int FileOutput::WriteFile(string toto, int NewFile)
{ ofstream Fileglobal;

if( NewFile == 0 )
{
Fileglobal=ofstream File (FILE_NAME, ios::out);
}
else
{
Fileglobal=ofstream File (FILE_NAME, ios::app);
} if (!Fileglobal )
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
} Fileglobal << "ma variable : " << toto<< endl;

// Fermeture du fichier
Fileglobal .close();
}


MaLaDeDeDe
Messages postés
15189
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
29 novembre 2021
100
Je pense qu'il n'y a pas besoin de spécifier le fait que ce soit un nouveau fichier, il suffit d'ouvrir le fichier avec ios::app (s'il existe pas, il va le créer)

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

Je te remercie d'avoir proposé un truc mais malheureusement ça ne marche pas !
J'avais déjà essayé mais à chaque fois le compilateur n'aime pas cette écriture...

Il me dit que :
expected primary-expression before "File"

alors que j'ai déclaré comme tu m'as dit un Fileglobal au départ.

Voilà si vous avez d'autres idées...
Merci d'avance!

Ah bin d'acc alor


MaLaDeDeDe