Rechercher : dans
Par :

C: convertir une chaine en float

Dernière réponse le 9 déc 2007 à 21:27:28 jerémiethe7, le 9 déc 2007 à 20:47:03 
 Signaler ce message aux modérateurs

Bonjour,
j'ai une chaine char[6] qui ne contient que des chiffres et un point ex 23.24\0
Je souhaiterais la convertir en float. J'ai essayé des trucs mais le compilateur me dit "cannot convert char into float".
J'utilise DEV C++ et j'ai windows, aidez moi s'il vous plait.
merci

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « C: convertir une chaine en float » dans :
Langage C - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Liste simplement chaînée VoirLISTES SIMPLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes chaînées A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...

1

Keff, le 9 déc 2007 à 20:49:36

Salut,

Il faut utiliser la fonction atof() pour cela.
nombre = atof(chaine);

@

EDIT : il faut inclure stdlib.h

Répondre à Keff

2

jerémiethe7, le 9 déc 2007 à 20:54:42

Merci mais ça ne fonctionne hélas pas.

Répondre à jerémiethe7

3

Keff, le 9 déc 2007 à 21:06:48

Comment ça?

Mets nous le morceau de code que tu utilises, stp.

Répondre à Keff

4

jerémiethe7, le 9 déc 2007 à 21:10:43

Voilà :

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct
{
float val;
char nom[45];
} action;
int main()
{
action titre;
float valtitre;
char valeur[10];
char nom[45];
FILE*fichier=NULL;
fichier=fopen("palmares[1].txt","r");
if (fichier!=NULL)
{
printf("============ANALYSE BOURSIERE============\n\n\tnom\tvaleur\n\n");
fseek(fichier,16216,0);
fgets(valeur,6,fichier);
fseek(fichier,15979,0);
fgets(nom,15,fichier);
printf("%s %s\n",nom,valeur);
strcpy(valeur," ");
}
fclose(fichier);
valtitre = atof(valeur);
printf("%f\n",valtitre);
system("pause");
}

Répondre à jerémiethe7

5

jerémiethe7, le 9 déc 2007 à 21:15:05

ça ne me met pas de messages d'erreurs mais le float est tout simplement différent de la chaine "valeur".
C'est peut etre du au . et non pas à une virgule non ?

Répondre à jerémiethe7

6

Keff, le 9 déc 2007 à 21:20:00
  • +1

Fais plutot comme çà:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct
{
float val;
char nom[45];
} action;
int main()
{
action titre;
float valtitre;
char valeur[10];
char nom[45];
FILE*fichier=NULL;
fichier=fopen("palmares[1].txt","r");
if (fichier!=NULL)
{
printf("============ANALYSE BOURSIERE============\n\n\tnom\tvaleur\n\n");
fseek(fichier,16216,0);
fgets(valeur,6,fichier);
fseek(fichier,15979,0);
fgets(nom,15,fichier); //je te fais confiance pour les adresses!
printf("%s %s\n",nom,valeur);
strcpy(valeur," "); //explique moi l'utilité de cette ligne, tu efface ta chaine avant de la convertir?
fclose(fichier);
valtitre = atof(valeur);
printf("%f\n",valtitre);

}
system("pause");
return(0); //le return est obligatoire si tu declare int main
}

Répondre à Keff

7

jerémiethe7, le 9 déc 2007 à 21:24:59

L'utilité est nulle en effet lol.
En tout cas merci car désormais tout fonctionne.
Encore merci pour l'aide Kerff!!
Bonne soirée

Répondre à jerémiethe7

8

 Keff, le 9 déc 2007 à 21:27:28

Je t'en prie.

N'oublie pas de passer le topic "en résolu".

@

Répondre à Keff