Rasta Knight Houston, I've got a problem | Voilà mon problème, je lis dans un fichier (ici le pointeur de fichier fptr2) des caractères que je copie dans fptr1. Jusque là, aucun problème.
Ensuite je veux lire un caractère précis à l'aide de fseek. Celui devrait être un entier et être ensuite utilisé pour placer des données à un autre endroit du fichier (parties en rouge). Seulement quand j'exécute mon prog, il me renvoie toujours la valeur "-1" pour caractère lu (en bleu ici). Si quelqu'un pouvait prendre qq minutes pour m'expliquer mon erreur, je lui serai grandement reconaissant.
Code :
- #include <iostream.h>
- #include <stdio.h>
- #include <stdlib.h>
- enum {SUCCES,ECHEC};
- void lect_aff_ecr_caract(FILE *fin, FILE *fout)
- {
- int c;
- while ((c=fgetc(fin)) != EOF){
- putchar(c);
- fputc(c, fout);
- }
- }
- int main(int argc, char *argv[])
- {
- if (argc == 3) {
- FILE *fptr1, *fptr2;
- int reval = SUCCES, c, i;
- long position_tete, pos_ant, temp;
- char info[130];
- printf("\nEntrez une chaine de caractere :\n" );
- scanf("%s", info);
- if ((fptr1=fopen(argv[2], "w" )) == NULL){
- printf("ouverture de %s impossible.\n", argv[2]);
- reval = ECHEC;
- } else if ((fptr2=fopen(argv[1], "r" )) == NULL){
- printf("ouverture de %s impossible.\n", argv[1]);
- reval = ECHEC;
- }else {
- lect_aff_ecr_caract(fptr2,fptr1);
- fseek(fptr1, 0, SEEK_SET);
- c=fgetc(fptr1);
- printf("\n premier passage c = %d", c);
- for (i=1;i<=5;i++){
- pos_ant=fseek(fptr1, 13, SEEK_CUR); /* ici 13 correspond au décalage nécessaire pour accéder à l'entier que j'ai besoin de lire.*/
- c=fgetc(fptr1);
- [#0000ff]printf("\n caractere lu : %d", c);
- fseek(fptr1, c*100, SEEK_SET);[/#e21c00]
- printf("position pour écriture : %d", temp=ftell(fptr1));
- fputc(c, fptr1);
- fseek(fptr1, pos_ant+1, SEEK_SET);
- }
- i=0;
- fseek(fptr1,100, SEEK_CUR);
- while (info[i] != EOF){
- fputc(info[i],fptr1);
- i++;
- }
- printf("\n pos tete = %d", position_tete=ftell(fptr1));
- fclose(fptr1);
- fclose(fptr2);
- }
- return reval;
- }else {printf("\n nombre d'arguments mauvais." );
- }
- }
|
Message édité par Rasta Knight le 13-06-2002 à 15:52:13 ---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
|