Emmanuel Delahaye C is a sharp tool | mifinoufou a écrit :
 
 Bonjour, j'ai un petit problème de segmentation fault lorsque j'utilise fscanf et je ne comprends pas pourquoi. Voici tout d'abord la partie du code posant problème :
 
   |  
 
 Tu ne vérifies pas si file s'est ouvert correctement. Tout peut arriver...
   Ceci fonctionne chez moi. Evidemment fscanf() utilisé comme ça ne prend qu'un mot à la fois...
  Code :
 - #include <stdio.h>
 - int main (void)
 - {
 -    char const *file = "corbeau.txt";
 -    FILE *fic = fopen(file, "r" );
 -    if (fic != NULL)
 -    {
 -       char ss[500];
 -       printf("Debut du chargement\n" );
 -       fscanf(fic, "%s", ss);
 -       printf("Fin de lecture\n" );
 -       printf("%s\n", ss);
 -    }
 -    else
 -    {
 -       perror (file);
 -    }
 -    return 0;
 - }
 
  |  
 
 Pour lire tous les mots un par un, il suffit de boucler :  
  Code :
 - #include <stdio.h>
 - int main (void)
 - {
 -    char const *file = "corbeau.txt";
 -    FILE *fic = fopen(file, "r" );
 -    if (fic != NULL)
 -    {
 -       char ss[500];
 -       printf("Debut du chargement\n" );
 -       while (fscanf(fic, "%499s", ss) == 1)
 -       {
 -          printf("%s\n", ss);
 -       }
 -       printf("Fin de lecture\n" );
 -    }
 -    else
 -    {
 -       perror (file);
 -    }
 -    return 0;
 - }
 
  |  
    Message édité par Emmanuel Delahaye le 04-06-2006 à 15:30:00  ---------------
			 Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
    |