LANGAGE C : comment copier coller un fichier?

Smash34 Messages postés 13 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour à tous,
Ma question est dans le titre du sujet en fait ^^

je crée un fichier
f1=(FILE *)fopen("essai.txt","w");

et j'aimerai savoir comment faire pour le copier coller, si il y a une fonction spéciale ou si il fo tout lire pour tout recopier dans un nouveau fichier..
merci à tous pour votre aide !

4 réponses

  1. DestyNov@
     
    Salut =)

    A moins de trouver une bibliothèque qui gère ça, tu es obligé de lire tout le fichier avec fread et de le réécrire dans un nouveau. il n'y a pas de fonction dans la librairie standard qui permet de faire ça.

    ++
    0
    1. Genroa
       
      Sous Windows il existe une fonction (API?) :

      BOOL CopyFile( LPCTSTR lpExistingFileName, /* Nom du fichier source */
      LPCTSTR lpNewFileName, /* Nom du fichier destination */
      BOOL bFailIfExists /* Si != 0, la copie sera annulée si le fichier existe déjà */
      );
      0
  2. Smash34 Messages postés 13 Statut Membre
     
    ok merci, mais comment je peux m'en servir du fread ? aparement ya plein d'arguments.. je ne m'y connais pas trop !
    j'ai vu sur google : fread(void *buffer; size_t tailleBloc, size_t nombreBlocs, FILE *flot);
    ... je ne comprend pas ! ^^

    mon programme (exercice) :

    #include <stdio.h>
    main()
    {
    int i;
    int temp;
    char chaine[80];

    FILE *f1;
    f1=(FILE *)fopen("essai.txt","w");
    fgets(chaine,80,stdin);
    for(i=0;i<5;i++)
    {
    fputs(chaine,f1);
    }

    /*C'est là que je voudrai copier coller mon fichier que je viens de créer, dans un autre avec un nouveau nom*/

    fclose(f1);
    return 0;
    }
    0
  3. Smash34 Messages postés 13 Statut Membre
     
    svp
    comment marche le fread ?!
    merci à tous.
    0
    1. novice
       
      fread(adresse de la variable,taille en octet,nombre de bloc,le pointeur sur le fichier)
      pareil pour fwrite
      ca donne pour copier un fichier d'entier int:

      FILE*source;FILE*destination;
      int a;

      source=fopen("source","r");
      destination=fopen("destination","w");
      do{
      fwrite(&a,sizeof(int),1,destination);
      fread(&a,sizeof(int),1,source);
      }while(!feof(source)); // tantque le fichier n'est pas arrivé a ca fin
      0
  4. MRextra Messages postés 154 Statut Membre 35
     
    si tu travail avec la console tu peux utiliser les commande DOS (ou SHELL) ou copier coller la sytaxe est la suivante:
    systeme("commande pour copier");
    systeme("commande pour coller");
    0
    1. Pseudo...
       
      system et non systeme...

      system("copy source destination");
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      La fonction system() est à éviter...
      Autant se créer la fonction de copie, c'est rapide...
      0