Utilisation de fstream pour extraire un fichier

Soyez le premier à donner votre avis sur cette source.

Vue 5 674 fois - Téléchargée 150 fois

Description

fstream pour ecriture !
c'est tout ! :=||

Source / Exemple :


#include <process.h> 
#include <iostream.h>    // pour la fonction exit()
#include <fstream.h>    // pour ifstream et ofstream
#include <conio.h>

main(int argc, char* argv[])  // arguments de la ligne de commande
{
   char ch;
   if (argc != 3)      // testeur d'args 
   {
      cerr << "Operation de sauvegarde en cours !\n";
      exit(-1);
   }

   ifstream source;    // sources io stream 
   ofstream dest;

   source.open(argv[1],ios::nocreate); 
   if (!source)//Si pas de source , donc rade :) !
   {
      cerr << "Desole , impossible de sauvegarder!" << argv[1] <<
	       " \n";
      exit(-1);
   }//Message d'erreur !
   dest.open(argv[2]);   // generation du dest , si celui si n'existait pas
			 // opu effacé au cas contraire !
   if (!dest)
   {
      cerr << "Erreur d'execution ! Fichier source obsolete  " << argv[2] <<
	      "Ecriture impossible\n";
      exit(-1);
   }

   while (dest && source.get(ch)) dest.put(ch);

   cout << "Operation achevée\n";

   source.close();        // Fermeture des ios!
   dest.close();
getch()
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
130
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
14 mars 2009

Sinon, on peut également redéfinir nous-même _getch(); en faisant
extern "C"
{
_CRTIMP int __cdecl _getch(void);
}
En ajoutant ces lignes, _getch() est utilisable comme si on avait fait
#include <conio.h>
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
2
un peu nul
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
pour le exit il est indispensable et donc standard, il suffit d'inclure <stdlib.h> ou <cstdlib> avec le namespace std.
par ex, comment peux tu quitter le programme depuis une fonction sans exit? avec un return tu ne fait que quitter la fonction, donc ca marche uniquement quand c'est la fonction main
a la fin du prog on peut faire cin.get(), l'equivalent d'un getchar de la stdio
Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1
Salut,
un bonne exemple pour les débutant avec les fstreams...

Mais en effet comme tu utilises le C++ (les fstream de la STL!) il est mieux d'inclure les fichier standard C++, tel que <fstream>, ! Malheureusement en faisant cela les utilitées du nom d'espace std ne sont qu'accessible avec le préfixe std::, alors tu peux soit faire:
...
using std::cout;
using std::cerr;
...
Mais ce qui n'est pas très utile vu que tu utilises beaucoup de la STL... Alors pour te faciliter la tâche tu peux utiliser:

using namespace std;

ce qui va te permettre d'utiliser toutes les utilités du nom d'espace std!

Ensuite, pour la fonction main( ), ne surtout pas la déclarer de cette manière, il est d'ailleurs rare que les compilos accepte ta façon de la faire alors je te propose:

int main( int argc, char *argv[] )
{
...
// return 0;
}

Je met le return 0; en commentaire car le pur C++ ne nécessite plus de cette ligne vu que la fonction main() retourne automatiquement la valeur 0 en C++! mais il n'est pas interdit, juste inutile... :)

Ensuite pour bien utiliser le standard C++, on va bouger le process.h et le conio.h qui ne sont pas du tout standard!

Alors tu as déclarer process.h pour utiliser la fonction exit(), comme je te l'ai dit plus haut il est mieux de déclarer INT main( ); ce qui va également te permettre de remplacer exit( -1 ); par un simple return -1; à la position voulue!

Et enfin pour remplacer getch( ) de conio.h tu peux tout simplement mettre un:

cin >> ch;

à la fin ce qui va faire patienter le programme :)

Bon voilà ça c'était pour les quelques éclairements, sinon le code il est pas mal!!

Bonne prog
Messages postés
371
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
23 septembre 2009

Pourquoi utiliser <fstream.h> plutot que le standard C++ <fstream> ? Même remarque pour toutes les autres librairies appelées ?
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.