LANGAGE C : comment copier coller un fichier?

Fermé
Smash34 Messages postés 13 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 9 avril 2005 - 7 avril 2005 à 20:27
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 févr. 2016 à 13:57
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

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
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 jeudi 7 avril 2005 Statut Membre Dernière intervention 9 avril 2005
7 avril 2005 à 20:53
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 jeudi 7 avril 2005 Statut Membre Dernière intervention 9 avril 2005
8 avril 2005 à 13:27
svp
comment marche le fread ?!
merci à tous.
0
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 mercredi 26 décembre 2007 Statut Membre Dernière intervention 23 février 2009 35
16 mars 2008 à 22:43
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
system et non systeme...

system("copy source destination");
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
18 févr. 2016 à 13:57
La fonction system() est à éviter...
Autant se créer la fonction de copie, c'est rapide...
0