Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1634 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [RESOLU] sscanf pour récupérer des float

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] sscanf pour récupérer des float

n°2145842
JPP78750
Posté le 14-06-2012 à 16:20:32  profilanswer
 

Bonjour à tous,
Je vous demande de l'aide pour résoudre une erreur. Je parcours un fichier ligne par ligne et chaque ligne représente les coordonnées de points donc ma ligne est du format :  
"  8.525  5.66  4.65" ou  
" -52.2  -545  -552.6"
Notez bien que le - devant les valeurs de la seconde ligne est décalé d'un caractère vers la gauche par rapport aux premiers caractères des valeurs de la première ligne ... (Je ne sais pas si ca a vraiment de l'importance ...)  
J'ai essayé d'utiliser sscanf mais les valeurs retournées sont 0.000 ...
Une idée ?
Merci


Message édité par JPP78750 le 14-06-2012 à 18:34:21
mood
Publicité
Posté le 14-06-2012 à 16:20:32  profilanswer
 

n°2145845
gilou
Modérateur
Modzilla
Posté le 14-06-2012 à 16:27:13  profilanswer
 

Ben montre nous ton code, vu que déjà le sscanf au lieu d'un fscanf, j'aimerais le comprendre, et qu'on a pas le format auquel tu lis.
A+,


Message édité par gilou le 14-06-2012 à 16:30:44

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2145859
JPP78750
Posté le 14-06-2012 à 18:23:45  profilanswer
 

Voila mon code

 
Code :
  1. // fonction qui permet de lire la ligne souhaitée
  2. char *get_line(char *buf, int n, FILE *f, int line) {
  3.     for(int i = 0; i < line; ++i)
  4.         if(fgets(buf, n, f) == NULL)
  5.             return NULL;
  6.     buf[strlen(buf) - 1] = '\0';
  7.    
  8.     return buf;
  9. }
  10. int main(int argc, char** argv)
  11. {
  12.     float Noeud[nbnoeuds][2];
  13. // fichier maillage
  14.     FILE *fichier=fopen("/Users/JPP/Documents/projets/opencl/Sphere.plt", "r" );   
  15.    
  16.     if(fichier)  // si l'ouverture a réussi
  17.     {     
  18. // lecture de la première valeur de la ligne 10
  19. char buf2[BUF_SIZE];
  20.         get_line(buf2, BUF_SIZE, fichier, 10);
  21.         sscanf (buf2, "%f", Noeud[10][0]);   
  22.         printf("%f \n",Noeud[10][0]);
  23. }
  24. }

Message cité 1 fois
Message édité par JPP78750 le 14-06-2012 à 18:24:10

---------------
http://www.jppanaget.com
n°2145862
in_your_ph​ion
Posté le 14-06-2012 à 18:29:39  profilanswer
 

JPP78750 a écrit :

Voila mon code
 

Code :
  1. // fonction qui permet de lire la ligne souhaitée  
  2. char *get_line(char *buf, int n, FILE *f, int line) {
  3.     for(int i = 0; i < line; ++i)
  4.         if(fgets(buf, n, f) == NULL)
  5.             return NULL;
  6.     buf[strlen(buf) - 1] = '\0';
  7.    
  8.     return buf;
  9. }
  10. int main(int argc, char** argv)
  11. {
  12.     float Noeud[nbnoeuds][2];
  13. // fichier maillage
  14.     FILE *fichier=fopen("/Users/JPP/Documents/projets/opencl/Sphere.plt", "r" );   
  15.    
  16.     if(fichier)  // si l'ouverture a réussi
  17.     {     
  18. // lecture de la première valeur de la ligne 10
  19. char buf2[BUF_SIZE];
  20.         get_line(buf2, BUF_SIZE, fichier, 10);
  21.         sscanf (buf2, "%f", Noeud[10][0]);   
  22.         printf("%f \n",Noeud[10][0]);
  23. }
  24. }



 
tu dois donner une adresse pour stocker ta variable, or Noeud[10][0] n'en est pas une.
 
 

n°2145863
JPP78750
Posté le 14-06-2012 à 18:33:16  profilanswer
 

Bon c'était juste ça,  
Merci beaucoup.


---------------
http://www.jppanaget.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [RESOLU] sscanf pour récupérer des float

 

Sujets relatifs
Récupérer tous les noms de fichier dans un dossierRécupérer les méthodes
[Web] Recuperer info. par UDP pour etre affichée sur du HTMLRécupérer un ID dynamiquement
Récuperer les nombres dans deux tabelauxrécupérer une image sur un socket et l'afficher en plein écran
Récupérer adresse ip locale en Javascript ?[Batch] recuperer ping dans fichier txt
récupérer le nom d'un fichier ouvert par Scilab et fonction uigetfile 
Plus de sujets relatifs à : [RESOLU] sscanf pour récupérer des float


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR