Ecriture dans un fichier

Résolu
felonyx6 Messages postés 2 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 21 avril 2007 - 21 avril 2007 à 16:24
felonyx6 Messages postés 2 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 21 avril 2007 - 21 avril 2007 à 17:21
Bonjour
je m addresse avous car j ai un petit probleme et cela fait un moment que je suis dessus.
Le probleme est le suivant: je dois faire un programme qui lit dans un fichier un texte et ce programme doit ecrire dans un autre fichier toutes les lettres du premier fichier mais une seule fois.
Ce que j ai fait je lis le caractere du premier fichier et je le compare au premier caractere du fichier 2, comme le fichier 2 est vide ceala le compare au caractere blanc, jusqu ici pas de probleme!
au second coup je lis le caractere suivant dans le fichier 1,je dois le comparer au premier caractere du fichier 2 sauf que dans mon code je le compare au second caractere et je vois pas pourquoi,bien que j ai fermé le fichier 2 pour que quand je le reouvre je puisse etre au debut mais cela ne change rien du tout. je sais pas si vous pouver m aider
je vous dis merci pour votre aide
voici le code

#include<stdio.h>
#include<conio.h>

void main()
{

char inname[20],outname[20];
FILE * in ,*out;
int i=0;
char c1,c2;
char  p1,p2;

printf("entrez in\n");
scanf("%20s",inname);
printf("entrez out\n");
scanf("%20s",outname);

in  = fopen(inname,"r+");
out =fopen(outname,"r+");

   while(c1!=EOF)
   {
    out =fopen(outname,"r+");
    c1=getc(in);
    printf("\non est ds while 1\n");
    printf("\nc1=%c\tc2=%c\n",c1,c2);

     while((c2!=EOF) && (c2!=c1))
     {
      c2=getc(out);
      printf("\non est ds while 2\n");
      printf("\nc2=%c\n",c2);
     }

      if(c2!=c1)
      {
       printf("\non est ds if\n");
       i++;
       printf("\ncompteur=%d\n",i);
       printf("\necriture de c1=%c\n",c1);
       putc(c1,out);

      }
     fclose(out);
    }
     fclose(in);

     getch();
}

1 réponse

felonyx6 Messages postés 2 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 21 avril 2007
21 avril 2007 à 17:21
Bonjour
je viens de trouver le resultat par moi meme donc merci quand meme.
le nouveau code:

#include<stdio.h>
#include<conio.h>

void main()     
{

char inname[20],outname[20];
FILE * in ,*out;
int i=0;
char c1,c2;
char  p1,p2;

printf("entrez in\n");
scanf("%20s",inname);
printf("entrez out\n");
scanf("%20s",outname);

in  = fopen(inname,"r+");
out =fopen(outname,"r+");

   while(c1!=EOF)
   {
// jai rajouté ces lignes tout simplement
    out =fopen(outname,"r+");
    c1=getc(in);
    c2=getc(out);
    printf("\non est ds while 1\n");
    printf("\nc1=%c\tc2=%c\n",c1,c2);

     while((c2!=EOF) && (c2!=c1))
     {
      c2=getc(out);
      printf("\non est ds while 2\n");
      printf("\nc2=%c\n",c2);
     }

      if(c2!=c1)
      {
       printf("\non est ds if\n");
       i++;
       printf("\ncompteur=%d\n",i);
       printf("\necriture de c1=%c\n",c1);
       putc(c1,out);

      }
     fclose(out);
    }
     fclose(in);

     getch();
}
3
Rejoignez-nous