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

Fermé
Stephanie - 28 nov. 2007 à 04:52
 le père - 28 nov. 2007 à 22:26
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
28 nov. 2007 à 07:31
Salut,

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

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