Accueil > Forum > > > > Lecture de nombres
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 FICHERDans c'est fscanfEssaye !      ------------------------------- 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 !) > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
|
|
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|