cs_goldray
Messages postés34Date d'inscriptionsamedi 3 avril 2010StatutMembreDernière intervention29 décembre 2012
-
25 mars 2012 à 01:46
cs_goldray
Messages postés34Date d'inscriptionsamedi 3 avril 2010StatutMembreDernière intervention29 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 :)
cs_Lucky92
Messages postés180Date d'inscriptionmercredi 22 décembre 2004StatutMembreDernière intervention16 août 20122 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 '/'.