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/
|