[Langage C] Obtenir une ligne d'un fichier (scanf%[^X])
Thranduil
Messages postés2Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention 4 janvier 2007
-
4 janv. 2007 à 16:03
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 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;
}
A voir également:
[Langage C] Obtenir une ligne d'un fichier (scanf%[^X])
Thranduil
Messages postés2Date d'inscriptionmercredi 3 septembre 2003StatutMembreDerniè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...?