conversion d'un *char en flottant dans un tableau

conversion d'un *char en flottant dans un tableau - C - Programmation

Marsh Posté le 13-04-2004 à 12:00:58    

voila j'ai un *char obtenu par la fonction strtock et je voudrais le stocké dans un tableau à deux dimensions de flottant
 
pour cela j'ai utilisé différentes fonction comme :
(float)
sscanf
et le résultat est toujours une erreur (ou alors il me retourne 1.000000).
 
Quelqu'un aurait une idée de comment résoudre ce problème.
 
déclarations des variables :  
 

Code :
  1. char ligne[255]; // taille d'une ligne
  2. char* mot; // coordonnees sous forme de chaine de caractère  
  3. float tabCoordonnees[maxligne][6]; // tableau contenant les coordonnes du vecteur
  4. char* separateur = " "; // separateur pour les colonnes
  5. fgets(ligne,255, fichier) ---> utilisé dans une boucle normalement
  6. mot = strtok(ligne, separateur);

Reply

Marsh Posté le 13-04-2004 à 12:00:58   

Reply

Marsh Posté le 13-04-2004 à 12:10:59    

sscanf / strtod fonctionnent parfaitement

Reply

Marsh Posté le 13-04-2004 à 17:29:43    

pourtant quand j'essaie j'ai droit à une erreur :  
 
  // lecture des coordonnées de chaque vecteurs  
  while (fgets(ligne,255, fichier) != NULL){
    // on incrémente le nombre de ligne parcouru
    i++;
    // on va decouper la ligne selon les espaces
    // on decoupe le premier mot -> on recupere X
    mot = strtok(ligne, separateur);
    // on decoupe la ligne selon les espaces -> on recupere Y,Z, Vx,Vy,Vz
    for (j=0; j<6; j++){
      MessageBox(NULL,mot,"affichage de mot",MB_YESNO|MB_ICONQUESTION);    
      // on enregistre la coordonnes dans un tableau
      tabCoordonnees[i][j]= sscanf(mot,"%f" );  
      MessageBox(NULL,"essaie","affichage de mot",MB_YESNO|MB_ICONQUESTION);  
      mot = strtok(NULL,separateur);
    }
  }
 
il m'affiche bien la première message box mais pas la deuxième ce qui veut donc dire qu'il y a une erreur avec sscanf
(message de windows :  Visu a rencontré un problème...)
Pourtant j'ai bien déclaré un tableau de flottant et les variables sont correctement initialisées.
quelqu'un aurait une suggestion ?

Reply

Marsh Posté le 13-04-2004 à 17:30:42    

bah évidemment si tu lis pas la doc :o ...

Reply

Marsh Posté le 13-04-2004 à 23:06:16    

en effet j'avais fait une connerie mais bon c'est peut être pas une raison de répondre par indice.  
je pense que les personnes qui viennent sur un forum sont pour apprendre. Certe google existe mais en général si on vient ici c qu'on a pas trouver sur google (en tout cas pour ma part c'était pour ça).
 
la réponse si ça peut servir :  
 
double tabCoordonnees[maxligne][6]; // tableau contenant les coordonnes du vecteur
const char *pos_err;
 
tabCoordonnees[i][j] = strtod(mot, &pos_err);

Reply

Marsh Posté le 13-04-2004 à 23:32:00    

ben continue à lire la documentation et tu découvriras que tu n'a alors plus besoin de strtok si tu utilises strtod

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed