Fscanf + while
Résolu/Fermé
Euph0r1c
-
28 déc. 2009 à 14:18
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 28 déc. 2009 à 16:03
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 28 déc. 2009 à 16:03
3 réponses
Merci, mais bon c'est pas main car c'est un morceau dont le prototype va vers main...puis oui boucle infini. Mais j'ai déjà corrigé moi-meme
Voici:
Là ça marche parfaitement. Merci de m'avoir repondu.
FILLED
Voici:
#include <stdio.h> #include <stdlib.h> #define MAX_LEN 300 int afficher() { FILE* fichier; FILE* fichier1; //pour les noms char chaine[MAX_LEN]; char chaine1[MAX_LEN]; if (fopen("primary_f.txt","r")==NULL) { printf("C'est vide.Ajoutez d'abord une todo-liste \n"); return(0); }; fichier=fopen("primary_f.txt", "r"); while ((fscanf(fichier," %[^\n]s",chaine))!=EOF) { printf("%s\n\n",chaine); sprintf(chaine1,"%s.txt",chaine); fichier1=fopen(chaine1,"r"); while ((fscanf(fichier1," %[^\n]s",chaine1))!=EOF) { printf("...%s\n\n",chaine1); }; }; fclose(fichier); return(0); }
Là ça marche parfaitement. Merci de m'avoir repondu.
FILLED
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
28 déc. 2009 à 14:41
28 déc. 2009 à 14:41
Salut,
Attention, tu n'as pas de fonction main(). Elle est obligatoire.
Ensuite, au vu de ton programme, je pense qu'il continue en boucle.
Si c'est ça, c'est très simple. Tu fermes le flux du fichier à chaque boucle while, et tu le rouvres après. Le problème c'est qu'en le rouvrant le flux de lecture sera positionné au début. Et donc tu ne liras jamais la ligne suivante. Tu dois donc avoir deux pointeurs sur des fichiers (un pour le fichier principal et un autre pour les fichiers secondaires).
Cdlt,
Attention, tu n'as pas de fonction main(). Elle est obligatoire.
Ensuite, au vu de ton programme, je pense qu'il continue en boucle.
Si c'est ça, c'est très simple. Tu fermes le flux du fichier à chaque boucle while, et tu le rouvres après. Le problème c'est qu'en le rouvrant le flux de lecture sera positionné au début. Et donc tu ne liras jamais la ligne suivante. Tu dois donc avoir deux pointeurs sur des fichiers (un pour le fichier principal et un autre pour les fichiers secondaires).
Cdlt,
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
28 déc. 2009 à 16:03
28 déc. 2009 à 16:03
Sinon, j'ai oublié de te dire : pas besoin de point-virgules après les accolades.