- fonction fscanf() , probleme [C] - C++ - Programmation
Marsh Posté le 19-06-2002 à 18:43:43
SquiiiD a écrit a écrit : voila ce qu'il y a dans mon fichier : Benoit,A123 Vivi,A451 Zozo,A925 Bulma,B554 je souhaite séparer le nom, et le code dans 2 variable differentes. Pour ce faire je procede comme suit :
|
Quel est la valeur de retour de tes fscanf ???
Marsh Posté le 19-06-2002 à 18:48:17
Il me renvois 1
et si je ne m'abuse fscanf renvois le nombre de champs lu correctements non???
comrpends po
vla le code complet
Code :
|
PS: c un exercice pas fini
Marsh Posté le 19-06-2002 à 18:52:06
SquiiiD a écrit a écrit : Il me renvois 1 et si je ne m'abuse fscanf renvois le nombre de champs lu correctements non??? comrpends po vla le code complet
|
avec
Code :
|
Ca donne quoi ???
Marsh Posté le 19-06-2002 à 18:56:12
sinon si y a un autre moyen de separer le nom et le code que fscanf je suis preneur ( sans passer par un algo pour decomposer tout ca )
merci
Marsh Posté le 19-06-2002 à 18:57:49
SquiiiD a écrit a écrit : La meme chose :'( |
et avec
Code :
|
???
Marsh Posté le 19-06-2002 à 19:32:28
SquiiiD a écrit a écrit : idem |
J'ai pas mon compilo C sous la patte malheureusement.
Sinon on va faire en sorte que ça marche, hein ?
1) Déja CodeLu[4] vu que tu veux y stocker 4 caractéres plus les \0 et autres \n, ça ne vas pas suffire.
2) fais plutôt fgets puis sscanf :
Code :
|
3) Dis moi.
Marsh Posté le 19-06-2002 à 20:35:57
Meric mais jai resolu mon prob jai remplacer la virgule par un espace et ca tourne
merci a toi
Marsh Posté le 19-06-2002 à 20:49:45
SquiiiD a écrit a écrit : Meric mais jai resolu mon prob jai remplacer la virgule par un espace et ca tourne merci a toi |
De rien mais je ne pige pas.
J'ai été soumis à un problème similaire (sauf '.' à la place de ',' et ça a très bien marché !!!
Marsh Posté le 19-06-2002 à 21:07:16
Avec ton systeme??? je sais pas jai pas tester jai resolut mon prob avant, et la je v un peu arreter , je fais du C depuis midi ! lol j'ai la tete videe.
Merci encore et bonne soiree
Marsh Posté le 19-06-2002 à 21:18:06
SquiiiD a écrit a écrit : Merci encore et bonne soiree |
Encore une fois de rien !
A la prochaine
(j'espère que je serais plus efficace !)
Marsh Posté le 24-10-2002 à 20:59:58
A mon avis, tu ne devrais JAMAIS mettre n'importe koi dans le scanf(ou fscanf).
en effet, dans la ligne
[cpp] fscanf(f_participants,"%s,%s",NomLu,CodeLu);[cpp]
tu as mis une virgule dans le fscanf entre les deux "%s" : la tu a demandé a fscanf de virer toutes les virgules pendant la lecture. resultat des courses : toute ta ligne est dans Nomlu.
Voilà le probleme vient de la virgule.
je conseille a tous les programmeurs de ne JAMAIS mettre d'espaces ou n'importe quel caractere entre deux "balises" dans un scanf(ou fscanf)
C'est le genre de probleme qu'on fait une seule fois dans sa vie, car apres on s'en souvient !
Marsh Posté le 25-10-2002 à 05:08:40
Variantes de capture de chaîne:
"%10s" //10 caractères, 11ème '\0' ajouté |
Attention, feof n'est vrai que quand on a tenté de lire au-delà de la fin du fichier. Trop tard !
Testé qui marche:
Code :
|
scanf est l'inverse de printf: le texte en dehors des formats doit correspondre, et est "sauté" en entrée.
Marsh Posté le 19-06-2002 à 18:26:44
voila ce qu'il y a dans mon fichier :
Benoit,A123
Vivi,A451
Zozo,A925
Bulma,B554
je souhaite séparer le nom, et le code dans 2 variable differentes.
Pour ce faire je procede comme suit :
mais ca mar'che pas il me met toute la ligne dans la premiere variable NomLu ! pq?
voici ce que j'obtiens :
- Benoit,A123
- Vivi,A451
- Zozo,A925
- Bulma,B554
une idee? Merci d'avance !