Un equivalent a fgets ?

Signaler
Messages postés
21
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
-
Messages postés
172
Date d'inscription
dimanche 10 décembre 2000
Statut
Membre
Dernière intervention
12 février 2009
-
Bonjour,

Je recherche simplement une fonction equivalente a fgets ?

Car je la sousponne de mal fonctionné sur l'ordi ou je bosse XD

(les gets() marche mal, alors pourquoi pas fgets...)

Merci =)

6 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
Qu'est-ce qui te fais dire que gets fonctionne mal ?

C++ (@++)<!--
Messages postés
172
Date d'inscription
dimanche 10 décembre 2000
Statut
Membre
Dernière intervention
12 février 2009
2
Bonsoir,
essaye :
fscanf(fichier,"%s", &Variable);

mais pourquoi dis-tu que gets fonctionne mal?
Mets-tu bien la ligne suivante avant chaque "gets"?
fflush(stdin);

//Cordialement,
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
fscanf(fichier,"%s", &Variable);

&Variable -> NON. Suppose que Variable soit un pointeur char (char*). Faire &Variable retournera l'adresse du pointeuret non l'adresse contenue par le pointeur.

%s ne lira QU'UN SEUL MOT. fgets lira jusqu'à la fin d'une ligne.

Normalement, il est très déconseillé de lire un fichier de la sorte (fscanf ou fgets) dû au taux probablement élevé d'appels qui seront générés. Lire par bloc et traiter le buffer s'avèrera beaucoup plus performant.

C++ (@++)<!--
Messages postés
21
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008

Mon programme ne voulai pas marché avec un gets (j'avais bien mis le fflush(stdin);) , je l'ai remplacé par un cin>> et ca marche niquel, donc je sais pas pourquoi ..

Mais problème resolu pour le fgets(), lui marchai finalement
Merci tout de meme !
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut

Attention, les cin s'arretent de lire au premier espace trouvé...

A+
Mon site internet : http://pistol.petesampras.free.fr
Messages postés
172
Date d'inscription
dimanche 10 décembre 2000
Statut
Membre
Dernière intervention
12 février 2009
2
bonjour,
sinon pour scanf il y a "%[^\n]\n", à la place de %s, qui lit jusqu'à rencontrer un retour à la ligne.

//Cordialement,