écriture dans un fichier

joduak Messages postés 194 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 13 avril 2007 - 11 avril 2006 à 23:48
 Utilisateur anonyme - 12 avril 2006 à 16:19
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

joduak Messages postés 194 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 13 avril 2007
11 avril 2006 à 23:48
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();

}
0
Utilisateur anonyme
12 avril 2006 à 01:30
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
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
12 avril 2006 à 09:41
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
0
joduak Messages postés 194 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 13 avril 2007
12 avril 2006 à 12:28
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!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
12 avril 2006 à 16:19
Ah bin d'acc alor


MaLaDeDeDe
0
Rejoignez-nous