begin process at 2012 05 29 23:13:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

Lecture de nombres


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lecture de nombres

mardi 1 juillet 2003 à 16:25:51 | Lecture de nombres

ganfoud

J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:

char ligne[50];
double acc=0.0;

while (fgets(ligne,14,fi) != NULL)
sscanf(ligne,"%e",&acc);

dans ligne[50] j'ai: "+5.64000e-003"
mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
mardi 1 juillet 2003 à 17:21:41 | Re : Lecture de nombres

JCDjcd

Au lieu de sscanf utilise :
acc = atof(line);



-------------------------------
Réponse au message :
-------------------------------

> J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
>
> char ligne[50];
> double acc=0.0;
>
> while (fgets(ligne,14,fi) != NULL)
> sscanf(ligne,"%e",&acc);
>
> dans ligne[50] j'ai: "+5.64000e-003"
> mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
mercredi 2 juillet 2003 à 09:12:19 | Re : Lecture de nombres

ganfoud

En effet, ca marche, mais je comprends pas pourquoi mon sscanf ne marche pas, surtout que je l'utilise juste au dessus de la meme maniere!?



-------------------------------
Réponse au message :
-------------------------------

> Au lieu de sscanf utilise :
> acc = atof(line);
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
> >
> > char ligne[50];
> > double acc=0.0;
> >
> > while (fgets(ligne,14,fi) != NULL)
> > sscanf(ligne,"%e",&acc);
> >
> > dans ligne[50] j'ai: "+5.64000e-003"
> > mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
>
mercredi 2 juillet 2003 à 09:14:54 | Re : Lecture de nombres

ganfoud

en fait, ca marche pas: une ligne sur deux, il me met acc=0, alors que pas du tout! je pense que ca vient de l'exposant...



-------------------------------
Réponse au message :
-------------------------------

> En effet, ca marche, mais je comprends pas pourquoi mon sscanf ne marche pas, surtout que je l'utilise juste au dessus de la meme maniere!?
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Au lieu de sscanf utilise :
> > acc = atof(line);
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
> > >
> > > char ligne[50];
> > > double acc=0.0;
> > >
> > > while (fgets(ligne,14,fi) != NULL)
> > > sscanf(ligne,"%e",&acc);
> > >
> > > dans ligne[50] j'ai: "+5.64000e-003"
> > > mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
> >
>
mercredi 2 juillet 2003 à 11:15:47 | Re : Lecture de nombres

JCDjcd

Mais c'est normal, car ce n'est pas la bonne fonction,
pour lire dans un fichier, il faut faire fscanf et non sscanf !

donc ca devrait marcher avec :
fscanf(fi,"%e",&acc);

(mais il faut mieux utiliser fgets, puis convertir, les scanf sont tres deconseilles)




-------------------------------
Réponse au message :
-------------------------------

> en fait, ca marche pas: une ligne sur deux, il me met acc=0, alors que pas du tout! je pense que ca vient de l'exposant...
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > En effet, ca marche, mais je comprends pas pourquoi mon sscanf ne marche pas, surtout que je l'utilise juste au dessus de la meme maniere!?
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Au lieu de sscanf utilise :
> > > acc = atof(line);
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
> > > >
> > > > char ligne[50];
> > > > double acc=0.0;
> > > >
> > > > while (fgets(ligne,14,fi) != NULL)
> > > > sscanf(ligne,"%e",&acc);
> > > >
> > > > dans ligne[50] j'ai: "+5.64000e-003"
> > > > mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
> > >
> >
>
mercredi 2 juillet 2003 à 12:39:50 | Re : Lecture de nombres

ganfoud

ben je lis dans une string qd meme!
fgets(ligne,14,fi) (ca me permet de lire ligne par ligne)
donc il faut bien faire un sscanf!
et puis ca marche juste au dessus...




-------------------------------
Réponse au message :
-------------------------------

> Mais c'est normal, car ce n'est pas la bonne fonction,
> pour lire dans un fichier, il faut faire fscanf et non sscanf !
>
> donc ca devrait marcher avec :
> fscanf(fi,"%e",&acc);
>
> (mais il faut mieux utiliser fgets, puis convertir, les scanf sont tres deconseilles)
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > en fait, ca marche pas: une ligne sur deux, il me met acc=0, alors que pas du tout! je pense que ca vient de l'exposant...
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > En effet, ca marche, mais je comprends pas pourquoi mon sscanf ne marche pas, surtout que je l'utilise juste au dessus de la meme maniere!?
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Au lieu de sscanf utilise :
> > > > acc = atof(line);
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
> > > > >
> > > > > char ligne[50];
> > > > > double acc=0.0;
> > > > >
> > > > > while (fgets(ligne,14,fi) != NULL)
> > > > > sscanf(ligne,"%e",&acc);
> > > > >
> > > > > dans ligne[50] j'ai: "+5.64000e-003"
> > > > > mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
> > > >
> > >
> >
>
mercredi 2 juillet 2003 à 13:08:36 | Re : Lecture de nombres

JCDjcd

OUI MAIS tu lis dans un FICHER
Dans c'est fscanf

Essaye !




-------------------------------
Réponse au message :
-------------------------------

> ben je lis dans une string qd meme!
> fgets(ligne,14,fi) (ca me permet de lire ligne par ligne)
> donc il faut bien faire un sscanf!
> et puis ca marche juste au dessus...
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Mais c'est normal, car ce n'est pas la bonne fonction,
> > pour lire dans un fichier, il faut faire fscanf et non sscanf !
> >
> > donc ca devrait marcher avec :
> > fscanf(fi,"%e",&acc);
> >
> > (mais il faut mieux utiliser fgets, puis convertir, les scanf sont tres deconseilles)
> >
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > en fait, ca marche pas: une ligne sur deux, il me met acc=0, alors que pas du tout! je pense que ca vient de l'exposant...
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > En effet, ca marche, mais je comprends pas pourquoi mon sscanf ne marche pas, surtout que je l'utilise juste au dessus de la meme maniere!?
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Au lieu de sscanf utilise :
> > > > > acc = atof(line);
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
> > > > > >
> > > > > > char ligne[50];
> > > > > > double acc=0.0;
> > > > > >
> > > > > > while (fgets(ligne,14,fi) != NULL)
> > > > > > sscanf(ligne,"%e",&acc);
> > > > > >
> > > > > > dans ligne[50] j'ai: "+5.64000e-003"
> > > > > > mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
> > > > >
> > > >
> > >
> >
>
mercredi 2 juillet 2003 à 13:20:43 | Re : Lecture de nombres

ganfoud

pas la peine de s'enerver!
je viens d'essayer: ca me donne la mm chose qu'avec
while (fgets(ligne,14,fi) != NULL)
sscanf(ligne,"%e",&acc);



-------------------------------
Réponse au message :
-------------------------------

> OUI MAIS tu lis dans un FICHER
> Dans c'est fscanf
>
> Essaye !
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > ben je lis dans une string qd meme!
> > fgets(ligne,14,fi) (ca me permet de lire ligne par ligne)
> > donc il faut bien faire un sscanf!
> > et puis ca marche juste au dessus...
> >
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Mais c'est normal, car ce n'est pas la bonne fonction,
> > > pour lire dans un fichier, il faut faire fscanf et non sscanf !
> > >
> > > donc ca devrait marcher avec :
> > > fscanf(fi,"%e",&acc);
> > >
> > > (mais il faut mieux utiliser fgets, puis convertir, les scanf sont tres deconseilles)
> > >
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > en fait, ca marche pas: une ligne sur deux, il me met acc=0, alors que pas du tout! je pense que ca vient de l'exposant...
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > En effet, ca marche, mais je comprends pas pourquoi mon sscanf ne marche pas, surtout que je l'utilise juste au dessus de la meme maniere!?
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Au lieu de sscanf utilise :
> > > > > > acc = atof(line);
> > > > > >
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
> > > > > > >
> > > > > > > char ligne[50];
> > > > > > > double acc=0.0;
> > > > > > >
> > > > > > > while (fgets(ligne,14,fi) != NULL)
> > > > > > > sscanf(ligne,"%e",&acc);
> > > > > > >
> > > > > > > dans ligne[50] j'ai: "+5.64000e-003"
> > > > > > > mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
> > > > > >
> > > > >
> > > >
> > >
> >
>
mercredi 2 juillet 2003 à 13:35:27 | Re : Lecture de nombres

JCDjcd

Excuse moi, mais je croiyait que tu ne faisais pas le fgets !

au lieu de %e essaye %lf, juste pour voir




-------------------------------
Réponse au message :
-------------------------------

> pas la peine de s'enerver!
> je viens d'essayer: ca me donne la mm chose qu'avec
> while (fgets(ligne,14,fi) != NULL)
> sscanf(ligne,"%e",&acc);
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > OUI MAIS tu lis dans un FICHER
> > Dans c'est fscanf
> >
> > Essaye !
> >
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > ben je lis dans une string qd meme!
> > > fgets(ligne,14,fi) (ca me permet de lire ligne par ligne)
> > > donc il faut bien faire un sscanf!
> > > et puis ca marche juste au dessus...
> > >
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Mais c'est normal, car ce n'est pas la bonne fonction,
> > > > pour lire dans un fichier, il faut faire fscanf et non sscanf !
> > > >
> > > > donc ca devrait marcher avec :
> > > > fscanf(fi,"%e",&acc);
> > > >
> > > > (mais il faut mieux utiliser fgets, puis convertir, les scanf sont tres deconseilles)
> > > >
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > en fait, ca marche pas: une ligne sur deux, il me met acc=0, alors que pas du tout! je pense que ca vient de l'exposant...
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > En effet, ca marche, mais je comprends pas pourquoi mon sscanf ne marche pas, surtout que je l'utilise juste au dessus de la meme maniere!?
> > > > > >
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Au lieu de sscanf utilise :
> > > > > > > acc = atof(line);
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
> > > > > > > >
> > > > > > > > char ligne[50];
> > > > > > > > double acc=0.0;
> > > > > > > >
> > > > > > > > while (fgets(ligne,14,fi) != NULL)
> > > > > > > > sscanf(ligne,"%e",&acc);
> > > > > > > >
> > > > > > > > dans ligne[50] j'ai: "+5.64000e-003"
> > > > > > > > mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
mercredi 2 juillet 2003 à 13:58:54 | Re : Lecture de nombres

ganfoud

ca marche avec lf (il me ne le met pas au format xxxe-xxx
mais ca marche.
est ce que le fait que ca ne marche pas ne viendrait pas du '+' devant?



-------------------------------
Réponse au message :
-------------------------------

> Excuse moi, mais je croiyait que tu ne faisais pas le fgets !
>
> au lieu de %e essaye %lf, juste pour voir
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > pas la peine de s'enerver!
> > je viens d'essayer: ca me donne la mm chose qu'avec
> > while (fgets(ligne,14,fi) != NULL)
> > sscanf(ligne,"%e",&acc);
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > OUI MAIS tu lis dans un FICHER
> > > Dans c'est fscanf
> > >
> > > Essaye !
> > >
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > ben je lis dans une string qd meme!
> > > > fgets(ligne,14,fi) (ca me permet de lire ligne par ligne)
> > > > donc il faut bien faire un sscanf!
> > > > et puis ca marche juste au dessus...
> > > >
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Mais c'est normal, car ce n'est pas la bonne fonction,
> > > > > pour lire dans un fichier, il faut faire fscanf et non sscanf !
> > > > >
> > > > > donc ca devrait marcher avec :
> > > > > fscanf(fi,"%e",&acc);
> > > > >
> > > > > (mais il faut mieux utiliser fgets, puis convertir, les scanf sont tres deconseilles)
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > en fait, ca marche pas: une ligne sur deux, il me met acc=0, alors que pas du tout! je pense que ca vient de l'exposant...
> > > > > >
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > En effet, ca marche, mais je comprends pas pourquoi mon sscanf ne marche pas, surtout que je l'utilise juste au dessus de la meme maniere!?
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > Au lieu de sscanf utilise :
> > > > > > > > acc = atof(line);
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > -------------------------------
> > > > > > > > Réponse au message :
> > > > > > > > -------------------------------
> > > > > > > >
> > > > > > > > > J'ai un probleme, quand je veux lire un nombre stocké dans une chaine:
> > > > > > > > >
> > > > > > > > > char ligne[50];
> > > > > > > > > double acc=0.0;
> > > > > > > > >
> > > > > > > > > while (fgets(ligne,14,fi) != NULL)
> > > > > > > > > sscanf(ligne,"%e",&acc);
> > > > > > > > >
> > > > > > > > > dans ligne[50] j'ai: "+5.64000e-003"
> > > > > > > > > mais dans acc, j'ai n'importe quoi apres cette commande! (en l'occurence 4.9503774569085e-315 !)
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

1 2

Cette discussion est classée dans : lecture, ligne, nombres, acc


Répondre à ce message

Sujets en rapport avec ce message

lecture de fichier [ par Machuet ] Hello, j'ai plusieurs question concernant la manipulation de fichier. En effet venant de VB, j'aimerais savoir si il existe des fonction pour lire un Lecture sur un fichier par ligne [ par gagaet22 ] Bonjour, Je cherche à lire sur un fichier ligne par ligne.J utilise fscanf et il s arrete des qu il y a un espace... Je cherche donc une fonction qui conversion de fichiers [ par sergio18 ] salutJe fais un projet où je dois faire une conversion du fichier.POur cela le prof qui me suit m'a demandé d'effectuer ds un premier temps une lectur C => lecture d'un fichier texte [ par lapeto_k ] J'ai un fichier "fichier.txt" dans lequel LA ligne suivante apparait "library1#library2#library3#........"Ce que je voudrai c'est stocker les characte lecture d'un fichier ligne par ligne [ par oudkaramla ] salut à tous,j'ai un problème: j'ai un fichier texte contenant quatre lignes.moi je veux lire ces quatre lignes et les stocker chacun dans une variabl lecture de la derniere ligne dans un fichier texte ouvert avec ifstream [ par indusine ] Bonjours à tous,je voudrais lire la derniere ligne d'un fichier texte ouvert en lecture avec ifstream.Dans mon application(MFC AppWizard exe)Visual C+ lecture fichier mot par mot [ par goutbouyo ] Salut,est il posible de lire dans un fichier mot par mot (et non ligne par ligne) ???Car quand je lit ligne par ligne, pour un mot ca me met : le mot Lecture de fichier [ par minet03 ] Hello tout le monde !Je voulais vous demander comment on fait pour lire ligne par linge dans un fichier. J'ai déjà mis : fgets(ligne, 255, fichier); f lecture fichier C++ [ par biscot19 ] bonjour, je voudrais savoir comment faire pour lire un fichier ligne par ligne par exemple je demande a mon prog de lire la 3eme ligne il doit me reto Recherche par ligne -> repère [ par Raphy2145 ] Bonjour,Je travaille sur une lecture de fichier par ligne, et j'ai besoin de faire une deuxième lecture à partir de la ligne en cours...Pour détailler


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales