Lecture fichier texte langage C

sebjuve Messages postés 21 Statut Membre -  
sebjuve Messages postés 21 Statut Membre -
Bonjour,

Voila j'essaye de lire le contenu d'un fichier mais je n'y arrive pas. Pouvez vous jeter un coup d'oeil au code pour me dire s'il y a une erreur que je n'ai pas vu. De plus j'ai essayé d'autres fonctions du langage C comme fgets ou fread sans plus de succès. Je vous joins le bout de code juste en dessous. Merci pour votre aide.

unsigned int n = 0;

FILE* file_scan ;
file_scan = fopen("/home/res_scan","r");

if (file_scan == NULL)
printf("Open Error\n");
else {
printf("File opened\n");

while(fgetc(file_scan) != EOF)
++n;

for(i=0;i<n;i++) {

if(fscanf(file_scan, "%c", &carac) == 1) { // Doesn't work ...
buf[i] = carac;
printf("%c",buf[i]);
}

}
Configuration: Windows Vista
Firefox 3.0.6

4 réponses

  1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    j'espere que tu fais ca sous linux .. file_scan = fopen("/home/res_scan","r");
    0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,

    Essaie :

    FILE* file_scan ;
    file_scan = fopen("/home/res_scan","r");
    
    if (file_scan == NULL)
         printf("Open Error\n");
    else {
         printf("File opened\n");
    
         while(fgets(buf,sizeof buf,file_scan)!=NULL) {
              puts(buf);
    
         }
        fclose(file_scan),file_scan=NULL;
    }
    
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    le problème vient de ton while(fgetc(....))n++;
    après le while tu est à la fin du fichier, tu ne peux donc plus lire dedans, ce qu tu tente tout de même de faire juste après.
    0
  4. sebjuve Messages postés 21 Statut Membre 1
     
    Ca marche correctement. J'ai compris ce que j'avais mal fait avec la commande fgets. Merci pour ton aide fiddy.
    0