Utilisation de fstream pour extraire un fichier

Soyez le premier à donner votre avis sur cette source.

Vue 6 322 fois - Téléchargée 165 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
spidermario Messages postés 121 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 14 mars 2009 1
29 juil. 2006 à 13:57
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>
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
22 mars 2004 à 13:56
un peu nul
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
22 mars 2004 à 05:26
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
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
19 mars 2004 à 23:25
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
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
19 mars 2004 à 20:02
Pourquoi utiliser <fstream.h> plutot que le standard C++ <fstream> ? Même remarque pour toutes les autres librairies appelées ?

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.