begin process at 2012 05 27 21:11:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > UTILISATION DE FSTREAM POUR EXTRAIRE UN FICHIER

UTILISATION DE FSTREAM POUR EXTRAIRE UN FICHIER


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :19/03/2004 Vu / téléchargé :4 451 / 94

Auteur : soumpro

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

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

Source

  • #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()
  • }
#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()
}





 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture ::FICHIERS ASC : PRESENTATION THEORIQUE ET EXEMPLES D'OBJETS...
Source avec Zip Source avec une capture FONCTIONS MATH.H SOUS RUBY POUR MACINTOSH OS/SE
Source avec Zip Source avec une capture MOTEUR 3D DE JEU
Source avec Zip DECLARATIONS ROUTINES POUR MOTEUR DE JEU 3D !
Source avec Zip Source avec une capture MENU SOUS CONSOLE

 Sources de la même categorie

Source avec Zip Source avec une capture EVAL EXPRESSION COMPLEXE EN 15 LIGNES DE CODE par yann_lo_san
Source avec Zip SCHEDULER RR FIFO par yvesB87
Source avec Zip ALGORITHMES RÉCURSIFS VS ALGORITHMES ITÉRATIFS par yvesB87
Source avec Zip Source avec une capture C++ FORMAT D'IMAGE AVEC QT par pop70
Source avec une capture EXEMPLE DE POINTEURS DE FONCTION par pop70

Commentaires et avis

Commentaire de djl le 19/03/2004 18:59:41

remarque ==&gt; tu n'est pas obligier d'apperler la methode close, notament a la fin d'un bloc ou si tu ne reutilise pas

Commentaire de xterminhate le 19/03/2004 20:02:00

Pourquoi utiliser &lt;fstream.h&gt; plutot que le standard C++ &lt;fstream&gt; ? Même remarque pour toutes les autres librairies appelées ?

Commentaire de D1m3x le 19/03/2004 23:25:28

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 &lt;fstream&gt;, &lt;iostream&gt; ! 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 &gt;&gt; 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

Commentaire de djl le 22/03/2004 05:26:11

pour le exit il est indispensable et donc standard, il suffit d'inclure &lt;stdlib.h&gt; ou &lt;cstdlib&gt; 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

Commentaire de lpikachu58 le 22/03/2004 13:56:59

un peu nul

Commentaire de spidermario le 29/07/2006 13:57:46

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>

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales