Fscanf !!!!!

Fermé
César - 20 juin 2002 à 18:19
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 - 21 juin 2002 à 17:32
Que dois je mettre comme argument à la fonction fscanf pour qu'elle me lise et retourne une ligne entiere ...

En faisant fscanf(f,"%s\n",temp) temp ne recoit que le premier d'une liugne ... le fscanf s'arr^^ete aux espaces ..

y'a t il un moyen d'éviter ça et de faire en sorte que je récupere toute la ligne ... espace compris
A voir également:

2 réponses

Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 209
21 juin 2002 à 17:32
La fonction scanf (ou fscanf) lit la ligne jusqu'au caractère d'interligne, et charge les différents champs selon les spécifications du format.
Selon K & R (édition 1985), page 142 :
un champ en entrée est défini comme étant une chaîne de caractères qui ne sont pas des caractères d'espacement blanc (espace, tabulation, interligne); il s'étend soit jusqu'au caractère d'espacement blanc suivant, soit jusqu'au moment où l'on atteint la largeur du champ, dans le cas où celle-ci est spécifiée (dans le format).
Le comportement que tu obtiens est donc normal. Il faut donc s'orienter vers une solution de type "getline" telle que décrite dans K & R.
Sinon, vers fgets(dest,maxLen,file) qui, si la taille du buffer est suffisante, et la longueur de la ligne courante inférieure à cette taille, donne le contenu de la ligne, y compris le caractère d'interligne (\n). Le comportement n'est donc pas le même si l'on atteint ou non la fin de ligne, et ne permet pas d'utiliser proprement la fonction strlen pour en connaître la taille (qui exige un \0 final).
Rassure-toi, tout le monde est passé par là !!!
2
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 209
20 juin 2002 à 18:29
A mon avis, la solution doit passer par le Kernighan & Ritchie, en commençant à la page 1.
0
Hein ?
0
Utilisateur anonyme
21 juin 2002 à 15:45
oui oui c'est ce qu'ilk a dit, un (-:

désolé je te charrie mais votre échange est rigolo (-;

kinder.surprise,
le maton du matou
0
asevere Messages postés 13089 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 425
21 juin 2002 à 15:48
ha ca me fait plaisir marden... je vois qu'on a été a la meme ecole
essai d'addresser ta variable temp>> &temp c'est plus correct mais je sais pas si ca reglera tout le probleme


\__ ',, '    Na kaer eo va Breizh,                   
 ; ; \/      gand ar mor glaz èn-dro dezi ! 
0