Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1418 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] problème de lecture de caractères dans un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] problème de lecture de caractères dans un fichier

n°158671
Rasta Knig​ht
Houston, I've got a problem
Posté le 13-06-2002 à 15:50:46  profilanswer
 

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. :jap:  
 

Code :
  1. #include <iostream.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. enum {SUCCES,ECHEC};
  5. void lect_aff_ecr_caract(FILE *fin, FILE *fout)
  6. {
  7. int c;
  8.     while ((c=fgetc(fin)) != EOF){
  9.           putchar(c);
  10.           fputc(c, fout);
  11.           }
  12. }
  13. int main(int argc, char *argv[])
  14. {
  15. if (argc == 3) {
  16. FILE *fptr1, *fptr2;
  17. int reval = SUCCES, c, i;
  18. long position_tete, pos_ant, temp;
  19. char info[130];
  20. printf("\nEntrez une chaine de caractere :\n" );
  21. scanf("%s", info);
  22. if ((fptr1=fopen(argv[2], "w" )) == NULL){
  23.     printf("ouverture de %s impossible.\n", argv[2]);
  24.     reval = ECHEC;
  25.     } else if ((fptr2=fopen(argv[1], "r" )) == NULL){
  26.       printf("ouverture de %s impossible.\n", argv[1]);
  27.       reval = ECHEC;
  28.       }else {
  29.             lect_aff_ecr_caract(fptr2,fptr1);
  30.             fseek(fptr1, 0, SEEK_SET);
  31.             c=fgetc(fptr1);
  32.             printf("\n premier passage c = %d", c);
  33.             for (i=1;i<=5;i++){
  34.                 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.*/
  35.                 c=fgetc(fptr1);
  36.                 [#0000ff]printf("\n caractere lu : %d", c);
  37.                 fseek(fptr1, c*100, SEEK_SET);[/#e21c00]
  38.                 printf("position pour écriture : %d", temp=ftell(fptr1));
  39.                 fputc(c, fptr1);
  40.                 fseek(fptr1, pos_ant+1, SEEK_SET);
  41.             }
  42.             i=0;
  43.             fseek(fptr1,100, SEEK_CUR);
  44.             while (info[i] != EOF){
  45.                   fputc(info[i],fptr1);
  46.                   i++;
  47.                   }
  48.             printf("\n pos tete = %d", position_tete=ftell(fptr1));
  49.             fclose(fptr1);
  50.             fclose(fptr2);
  51.             }
  52. return reval;
  53. }else {printf("\n nombre d'arguments mauvais." );
  54.        }
  55. }


Message édité par Rasta Knight le 13-06-2002 à 15:52:13

---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
mood
Publicité
Posté le 13-06-2002 à 15:50:46  profilanswer
 

n°158766
MarcP
Boinc.fr
Posté le 13-06-2002 à 17:15:32  profilanswer
 

En compillant en -Wall pedantic et cie, ca ne donne pas de pb ?


---------------
Aménager un camping car poids lourd dans un bus / car / camion  - Boinc pour faire bosser votre pc
n°159001
Rasta Knig​ht
Houston, I've got a problem
Posté le 13-06-2002 à 21:41:47  profilanswer
 

up plize :sweat:


---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com
n°159458
MrTonio
Posté le 14-06-2002 à 15:15:39  profilanswer
 

Code :
  1. if ((fptr1=fopen(argv[2], "w" )) == NULL){


                                           ^^^
        ton fichier ouvert est ecriture et non pas en lecture  :non:  
 

Code :
  1. if ((fptr1=fopen(argv[2], "w+" )) == NULL){


 
C est mieux comme ca  :D


Message édité par MrTonio le 14-06-2002 à 15:16:47

---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
n°159647
Rasta Knig​ht
Houston, I've got a problem
Posté le 14-06-2002 à 19:34:18  profilanswer
 

merci beaucoup msieur tonio :jap:


---------------
Le tout c'est d'y croire! DaBZHWDT site : www.setibzh.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] problème de lecture de caractères dans un fichier

 

Sujets relatifs
[PHP] insertion dans un fichier texteproblème d'insertion d'images (résolu)
[XSL] Problème d'interpretation du XML sur une zone de texte[JSP/tomcat] Probleme de debutant
[PHP] Problème avec un WHILE :(interdire le clic droit de la souris sur un fichier flash: javascript
[JAVA] Lecture d'un fichier texte[PHP] Comment supprimer un fichier texte ?
problème de "frames"... 
Plus de sujets relatifs à : [C] problème de lecture de caractères dans un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR