[C] Convertir chaîne de caractères en float

Stephanie -  
 le père -
Bonjour,

Je ne comprends pas pourquoi mais je n'arrive vraiment pas à convertir une chaine de caractère en float.

Tout ce que je veux faire, c'est de prendre le contenu d'une chaine de caractères appelée chaine,
la convertir en nombre réels (float) puis la stocker dans un nouveau tableau, qui fait partie d'une structure.

J'ai essayé avec sscanf, atof, et atoff mais rien ne semble fonctionner.

voici mon code:

/*lire la premiere ligne du fichier*/
fgets(chaine, MAX_DIMENSION-1, ptr_fichier);
/*convertir la chaine de caractères en nombre réels*/
printf("chaine=%s\n", chaine);

while(chaine[ctr]!='\0')
{
//sscanf(chaine, "%f", ptr_copie->entete_temp);
ptr_copie->entete_temp=atoff(chaine);
ctr++;
}

J'ai vérifié que la ligne du fichier est lue et stockée correctement. Il n'y a pas de problème avec ça.
Je ne sais plus quoi essayer, et ce petit problème (pas mal stupide à mon gout lol) m'empêche de m'avancer
dans le projet que je doit compléter, meme que je commence serieusement a me frustrer :P

Merci d'avance,
Stephanie

4 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    la fonction s'appelle atof et pas atoff
    ptr_copie->entete_temp=atof(chaine);
    3
  2. le père
     
    bonjour,

    et la boucle while est inutile, elle va recommencer 36 fois la même conversion, c'est tout
    0
  3. Stephanie
     
    Pourquoi alors est-ce que j'obtiens un message d'erreur avec

    /*lire la premiere ligne du fichier*/
    fgets(chaine, MAX_DIMENSION-1, ptr_fichier);
    /*convertir la chaine en double*/
    ptr_copie->entete_temp=atof(chaine);

    Le message d'erreur est le suivant:
    "incompatible types in assignment"
    est-il possible d'utiliser sscanf pour faire la conversion aussi? Si oui, commen est-ce que je l'utiliserais?
    0
  4. le père
     
    Sur quelle ligne le message d'erreur ?
    Quel est le type de entete_temp ?
    0