Conversion ascii vers int
Résolu
Jad
-
Jad -
Jad -
Bonjour,
Je suis en train de programmer un GPS et je voudrais faire le calcul de distance parcourue.
Mais j'arrive pas à faire la conversion des données recues en ASCII vers un INT pour que je puisse les traiter...
Je travail avec du C.
Si quelqu'un pourrait m'aider
MErci
Je suis en train de programmer un GPS et je voudrais faire le calcul de distance parcourue.
Mais j'arrive pas à faire la conversion des données recues en ASCII vers un INT pour que je puisse les traiter...
Je travail avec du C.
Si quelqu'un pourrait m'aider
MErci
A voir également:
- Conversion ascii vers int
- Code ascii - Guide
- Logiciel gratuit conversion calendrier républicain - Télécharger - Études & Formations
- Windows 7 vers windows 10 - Accueil - Mise à jour
- Clavier qwerty vers azerty - Guide
- Vers quelle adresse web renvoie ce lien - Guide
4 réponses
Salut,
Le code donné par dubcek est bon. Il faut juste l'adapter avec des %f si tu veux des float.
Tu peux également utiliser strtod (ou strtof si tu veux vraiment des float).
Ce qui donnerait :
En faut-il être sûr que dans la chaîne tu possèdes bien un point et non une virgule. Dans ce cas, c'est très simple, tu utilises strchr pour transformer la virgule en point et recommencer avec strtod.
Cdlt
Le code donné par dubcek est bon. Il faut juste l'adapter avec des %f si tu veux des float.
Tu peux également utiliser strtod (ou strtof si tu veux vraiment des float).
Ce qui donnerait :
#include <stdio.h> #include <stdlib.h> int main(void){ char *ch="12.34"; double d=strtod(ch,NULL); //et là tu as d return 0; }
En faut-il être sûr que dans la chaîne tu possèdes bien un point et non une virgule. Dans ce cas, c'est très simple, tu utilises strchr pour transformer la virgule en point et recommencer avec strtod.
Cdlt
hello
voir sscanf
int x;
char * s="123";
sscanf(s, "%d", &x);
voir sscanf
int x;
char * s="123";
sscanf(s, "%d", &x);
Merci pour la réponse!
Au fait j'ai trouvé une solution pour la conversion mais j'arrive pas à afficher la virgule et tous ce qu'il y a après.
Mon code c'est:
lati=lati+(latitude[0]-'0')*10;
lati=lati+(latitude[1]-'0');
lati=lati+(latitude[2]-'0')*0,1; // Cette ligne c'est pour le premier chiffre après la virgule...Mais sa ne marche pas.
Si quelqu'un aurait une idée
Merci
Au fait j'ai trouvé une solution pour la conversion mais j'arrive pas à afficher la virgule et tous ce qu'il y a après.
Mon code c'est:
lati=lati+(latitude[0]-'0')*10;
lati=lati+(latitude[1]-'0');
lati=lati+(latitude[2]-'0')*0,1; // Cette ligne c'est pour le premier chiffre après la virgule...Mais sa ne marche pas.
Si quelqu'un aurait une idée
Merci
Merci