Sorell Stratège
Nombre de messages : 521 Localisation : Quel part où le sang coule. Date d'inscription : 01/05/2008
Feuille de personnage Surnom dans la team: Sénéchal Noir Victoire/défaite: (0/0)
| Sujet: TP3 Exercice 4 - Validation de l'existence d'un fichier Lun 17 Déc - 13:24 | |
| Version 1 : - Code:
-
/** * * @file ValidFichier.cxx * * @authors M. Laporte, D. Mathieu * * @date 18/11/2011 * * @version V1.0 * * @brief Validation de l'existence d'un fichier * **/
#include <iostream> #include <string> #include <fstream>
using namespace std;
namespace { void ValidFichier (void) { string FicSource; ifstream is; unsigned NbVies = 3; for ( ; NbVies > 0; --NbVies) { cout << "Nom du fichier source : "; getline (cin, FicSource); // Le second parametre ci-dessous est facultatif car le flux // a ete declare ifstream donc flux d'entree
is.open (FicSource.c_str () /* , ios_base::in */);
if (!is.fail ()) break; cout << "Le fichier " << FicSource << " ne peut etre ouvert en lecture\n"; } if (0 == NbVies) { cout << "3 echecs d'ouverture de fichier en lecture\n"; return; } string FicDest; ofstream os; NbVies = 3;
for ( ; NbVies > 0; --NbVies) { cout << "Nom du fichier destination : "; getline (cin, FicDest);
// // Le second parametre ci-dessous est facultatif car le flux // a ete declare ofstream donc flux de sortie
os.open (FicDest.c_str () /* , ios_base::out */);
if (!os.fail ()) break; cout << "Le fichier " << FicDest << " ne peut etre ouvert en ecriture\n"; } if (0 == NbVies) { cout << "3 echecs d'ouverture de fichier en ecriture\n"; return; } cout << "\nCopie du fichier " << FicSource << " dans le fichier " << FicDest << "\n\n"; string Str;
for (getline (is, Str); ! is.eof (); getline (is, Str)) os << Str << '\n'; } // ValidFichier() } // namespace
int main (void) { /* * / Flux_cin (); /* */ /* * / AffichFich (); /* */ /* * / NomFichAuKbd (); /* */
/* */ ValidFichier (); /* */
return 0;
} // main()
Dernière édition par Sorell le Lun 17 Déc - 13:27, édité 1 fois | |
|
Sorell Stratège
Nombre de messages : 521 Localisation : Quel part où le sang coule. Date d'inscription : 01/05/2008
Feuille de personnage Surnom dans la team: Sénéchal Noir Victoire/défaite: (0/0)
| Sujet: Re: TP3 Exercice 4 - Validation de l'existence d'un fichier Lun 17 Déc - 13:27 | |
| Version 2 - Code:
-
/** * * @file ValidFichier_a.cxx * * @authors M. Laporte, D. Mathieu * * @date 18/11/2011 * * @version V1.0 * * @brief Validation de l'existence d'un fichier * **/
#include <iostream> #include <string> #include <fstream>
using namespace std;
namespace { void ValidFichier (void) { ifstream is; ofstream os; { string FicSource;
// Saisie, validation et ouverture du fichier source { unsigned NbVies = 3; for ( ; NbVies > 0; --NbVies) { cout << "Nom du fichier source : "; getline (cin, FicSource); // Le second parametre ci-dessous est facultatif car // le flux a ete declare ifstream donc flux d'entree
is.open (FicSource.c_str () /* , ios_base::in */);
if (is.is_open()) break; cout << "Le fichier " << FicSource << " ne peut etre ouvert en lecture\n"; } if (0 == NbVies) { cout << "3 echecs d'ouverture de fichier " "en lecture\n"; return; } } string FicDest;
// Saisie, validation et ouverture du fichier destination {
unsigned NbVies = 3;
for ( ; NbVies > 0; --NbVies) { cout << "Nom du fichier destination : "; getline (cin, FicDest);
// Le second parametre ci-dessous est facultatif car // le flux a ete declare ofstream donc flux de // sortie os.open (FicDest.c_str () /* , ios_base::out */);
if (os.is_open()) break; cout << "Le fichier " << FicDest << " ne peut etre ouvert en ecriture\n"; } if (0 == NbVies) { cout << "3 echecs d'ouverture de fichier " "en ecriture\n"; return; } } cout << "\nCopie du fichier " << FicSource << " dans le fichier " << FicDest << "\n\n"; } { string Str;
for (getline (is, Str); ! is.eof (); getline (is, Str)) os << Str << '\n'; } } // ValidFichier() } // namespace
int main (void) { /* * / Flux_cin (); /* */ /* * / AffichFich (); /* */ /* * / NomFichAuKbd (); /* */
/* */ ValidFichier (); /* */
return 0;
} // main()
| |
|