[Langage C] Obtenir une ligne d'un fichier (scanf%[^X])

Thranduil Messages postés 2 Date d'inscription mercredi 3 septembre 2003 Statut Membre Dernière intervention 4 janvier 2007 - 4 janv. 2007 à 16:03
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 4 janv. 2007 à 16:11
Bonjour, j'essaie de créer une fonction qui doit lire une ligne entière d'un fichier texte (donc jusqu'au '\n' mais ça ne marche pas. (C'est la même que scanf en gros, avec le %[^\n])
Voici son interface :
type : (FILE* x int)-> char*
arguments : le fichier 'fich' qu'on lit, la ligne que l'on souhaite récupérer 'n'.
retourne : la ligne n du fichier 'fich' sous forme de chaîne de caractère.

J'ai codé le truc ci dessous, mais, étrangement, quand j'appelle ma fonction, je suis obligé de faire un 'printf' entre chacun de ses appels... ? Si quelqu'un a une idée ca me permettrais de cmprendre un peu mieux, merci !

char* get_ligne(FILE * fich, int n) {
  int i = 0, c, j=0;
  char*s;
  if (fich == NULL) {
fprintf(stderr, "Erreur de lecture du fichier.\n");
exit(1);
}
  
  c=fgetc(fich);
  do{
      if (c=='\n') { 
        i++; 
        }
   
      if (i==n) {
        while((c=fgetc(fich))!='\n') {
    s[j]=(char) c;
    j++;
        }
 
        s[j]='\0';
        fseek(fich,0, SEEK_SET);
        return s;
    }
  }while((c=fgetc(fich))!=EOF);
  fseek(fich,0, SEEK_SET);
  return s;
}

3 réponses

Thranduil Messages postés 2 Date d'inscription mercredi 3 septembre 2003 Statut Membre Dernière intervention 4 janvier 2007
4 janv. 2007 à 16:07
Arg désolé c'est mon premier post, il est assez horrible. Si quelqu'un sait comment le remettre en forme peut il m'informer? Je n'ai pas trouvé comment insérer des balises etc...?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
4 janv. 2007 à 16:09
type : (FILE* x int)-> char*
Ca me fait penser au Caml ca (mais pas au C)

Pourquoi tu n'utilises pas fgets?

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
4 janv. 2007 à 16:11
Il n'y a pas de balises pour la mise en forme, mais ce n'est pas grave
Essaie de le mettre avec les retours à la lignes, c'est quand même plus lisible

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
Rejoignez-nous