[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
A voir également:

4 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

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

et la boucle while est inutile, elle va recommencer 36 fois la même conversion, c'est tout
0
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
le père
 
Sur quelle ligne le message d'erreur ?
Quel est le type de entete_temp ?
0