LANGAGE C : comment copier coller un fichier?

Smash34 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 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 !
A voir également:

4 réponses

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
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
Smash34 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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
Smash34 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
svp
comment marche le fread ?!
merci à tous.
0
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
MRextra Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   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
Pseudo...
 
system et non systeme...

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