Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1801 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
Modosaurus Rex
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! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- No jab ? No job ! -- (╯°□°)╯︵ ┻━┻
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-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)