Copier le contenu d'un fichier vers un autre !

Résolu
cs_goldray Messages postés 34 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 29 décembre 2012 - 25 mars 2012 à 01:46
cs_goldray Messages postés 34 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 29 décembre 2012 - 25 mars 2012 à 14:28
Bonsoir,

je veux copier le contenu d'1 fichier dans 1 autre en passant par l'intermédiaire d'une liste chainée ...
mais le soucis que j'ai rencontré est au niveau de l'ouverture du fichier destinateur (ligne 31 du code ) ... mon code m'affiche le message "error" que je l'ai mis pour la vérification
voici le code :
#include <stdlib.h>
#include <stdio.h>
struct data
{
int cle;
int qt;
float prix;
};
typedef struct data DATA;

struct liste
{
DATA d;
struct liste * next;
};
typedef struct liste LISTE;

LISTE* charger_liste();
void insere_tete(LISTE**first,char*s);
void charger_file(LISTE* a,FILE* fp);




/*fonction charger liste */
LISTE* charger_liste()
{
LISTE* first=NULL;
FILE* fp;
char s[100];
if (!(fp=fopen("C:\exp.txt","r") )) /*ici le probléme : ligne 31*/
{
printf("error");
return(NULL);
}
printf("cv");
rewind(fp);
while(fgets(s,100,fp))
insere_tete(&first,s);
fclose(fp);
return(first);
}

void insere_tete(LISTE* *first,char *s)
{
    LISTE* p;
    p=(LISTE*)malloc(sizeof(LISTE));
    sscanf(s,"%2d %3d %f", &(p->d.cle),&(p->d.qt),&(p->d.prix));
    p->next=*first;
    *first=p;
}
void charger_file(LISTE* a,FILE* fp)
{
    for(;a;a=a->next)
    fprintf(fp,"%-2.2 d %-3.3 d %f \n", (a->d.cle),(a->d.qt),(a->d.prix) );
}
int main()
{
    LISTE* first;
    FILE* fp1;
    fp1=fopen("C:\recp.txt","w");
    first=charger_liste();
 charger_file(first,fp1);
 fclose(fp1);
    return(0);
}


j'espère que vous pouvez m'aider et merci d'avance :)

3 réponses

cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
25 mars 2012 à 10:38
Le problème vient du nom de fichier. Dans une chaîne de caractères, '\' est utilisé pour les métacaractères. Pour les séparateurs de répertoires, il faut que tu utilises soit '\\', soit '/'.
3
cs_goldray Messages postés 34 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 29 décembre 2012 1
25 mars 2012 à 13:57
Bonjour,
j'ai essayé les 2propositions :
1-
if (!(fp=fopen("C:\\exp.txt","r") ))

2-
if (!(fp=fopen("C:/exp.txt","r") ))


mais le méme message s'affiche "error"
0
cs_goldray Messages postés 34 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 29 décembre 2012 1
25 mars 2012 à 14:28
merci b1 té propositions marchent b1
0
Rejoignez-nous