Dupliquer un fichier

xilar Messages postés 1 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 11 février 2010 - 11 févr. 2010 à 09:26
tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 - 12 févr. 2010 à 12:18
salut, j'ai voulu faire un programme qui copie un fichier en lui donnant le même nom suivit de 2.txt mais l'execution me la copie avec le nom: suivit de "�2.txt".Voici le code de ce programme


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main ()
{
int n,m;
char nomf[256], nomcop[256];
FILE *copie,*fichier;
printf("saisir le nom du fichier à copier:\n");
scanf("%s",nomf);
n=strlen(nomf)-4;
strncpy(nomcop,nomf,n);
puts(nomcop);
strcat(nomcop,"2.txt");
copie=fopen(nomcop,"wb");
fichier=fopen(nomf,"rb");
while(!feof(fichier))
{
fread(&m,2,1,fichier);
fwrite(&m,2,1,copie);
}
printf("copie reussie");
fclose(fichier);
fclose(copie);
return 0;
}

1 réponse

tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
12 févr. 2010 à 12:18
Bonjour,

Si tu n'as pas encore trouvé (ton post est d'hier) alors sache que strncpy ne met pas obligatoirement de code 0 à la fin. Donc strcat va ajouter après le premier 0 trouvé, et dans dont cas, il n'était pas loin.
Il faut donc au minimum faire
nomcop[n] = 0;
avant le strcat.

ou bien
strcpy(&nomcop[n], "2.txt");
à la place.


thip
0