IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Y-a-t-il la possiblité de déplacer une virgule dans un char


Sujet :

C

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut Y-a-t-il la possiblité de déplacer une virgule dans un char
    Bonjour,

    Pour le moment je ne sais pas qu'est la cause de mon problème.

    Je récupère la position d'un GPS d'un char

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char lat[15];
    char lon[15];
    Mon code fonction saud que la fonction fournie par la librairie me retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    608.476655
    4613.163213
    alors qu'il devrait retourner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    6.08476655
    46.13163213
    En attendant, je souhaiterais savoir s'il y a la possiblité de déplacer le point de 2 positions, car je doute qu'un puisse diviser un char par 100?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Membre régulier Avatar de Mipwiq
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 42
    Points : 81
    Points
    81
    Par défaut
    Si tu sais que tu auras toujours un décalage de deux cases dans ton tableau pour la position de la virgule, tu peux la déplacer manuellement en cherchant où elle est dans ton tableau et en la décalant de deux cases. Mais c'est sale.

    Le mieux serait que tu nous montre ton algo pour arriver à ce résultat comme ça on pourra peut être te dire d'où viens le problème

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    D'accord,

    voici la fonction qui me retourne les valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    char GPSGSM::getPar(char *str_long, char *str_lat, char *str_alt, char *str_time, char *str_speed) 
    {
    	char ret_val=0;
    	char *p_char; 
    	char *p_char1;
    	gsm.SimpleWriteln("AT+CGPSINF=0");
    	gsm.WaitResp(5000, 100, "OK");
    	if(gsm.IsStringReceived("OK"))
    		ret_val=1;
     
    	//longitude
    	p_char = strchr((char *)(gsm.comm_buf),',');
    	p_char1 = p_char+1;  //we are on the first char of longitude
    	p_char = strchr((char *)(p_char1), ',');
    	if (p_char != NULL) {
              *p_char = 0; 
        }
    	strcpy(str_long, (char *)(p_char1));
     
    	// latitude
    	p_char++;
    	p_char1 = strchr((char *)(p_char), ',');
    	if (p_char1 != NULL) {
              *p_char1 = 0; 
        }	
    	strcpy(str_lat, (char *)(p_char));
     
    	// altitude
    	p_char1++;
    	p_char = strchr((char *)(p_char1), ',');
    	if (p_char != NULL) {
              *p_char = 0; 
        }	
    	strcpy(str_alt, (char *)(p_char1));
     
    	// UTC time
    	p_char++;
    	p_char1 = strchr((char *)(p_char), ',');
    	if (p_char1 != NULL) {
              *p_char1 = 0; 
        }	
    	strcpy(str_time, (char *)(p_char));	
     
    	// TTFF
    	p_char1++;
    	p_char = strchr((char *)(p_char1), ',');
    	if (p_char != NULL) {
              *p_char = 0; 
        }	
     
    	// num
    	p_char++;
    	p_char1 = strchr((char *)(p_char), ',');
    	if (p_char1 != NULL) {
              *p_char1 = 0; 
        }	
     
    	// speed
    	p_char1++;
    	p_char = strchr((char *)(p_char1), ',');
    	if (p_char != NULL) {
              *p_char = 0; 
        }		
    	strcpy(str_speed, (char *)(p_char1));	
     
    	return ret_val;
    }
    J'espère que c'est ben ce que tu demande?
    Mais ca me semble du bidoullage. Es-ce que ca pourrait avoir avec l'antenne?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    déplacer une virgule dans un char

    Je récupère la position d'un GPS d'un char
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char lat[15];
    char lon[15];
    je doute qu'un puisse diviser un char par 100
    Tu comprends rien à ce que je t'explique dans chaque discussion ou tu fais exprès ?

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Salut Bktero,

    ...heu, je me sens mal à l'aise fasce à ton message et toutes tes explications détaillées.
    Jai honte de ne pas avoir trouvé la réponse malgré tes explications
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Le problème n'est pas que tu ne trouves pas la réponse à ta question. Les forums sont là pour t'aider

    Le problème est que ta question est mal posée : il n'y a rien à déplacer dans un char à part des bits. Et le fait qu'elle soit mal posée veut dire 2 choses :
    • soit tu n'utilises pas les bons mot même si tu as compris, et ce n'est pas bien : emploie les bons mots pour montrer que tu as compris
    • soit tu n'as pas encore intégré le point essentiel que je rappelle juste après.

    Un char n'est pas une chaine de caractères.

    Je comprends que tu souhaites avancer sur ton application, c'est plus marrant que de lire des cours. D'ailleurs, est-ce un loisir ou est-ce ton travail ? Néanmoins, tant que tu ne comprendras pas ce qu'est une chaine de caractères, tu perdras ton temps et risqueras les bogues à coder une application qui passe son temps à manipuler des chaines de caractères.


    Quelles remarques (quand même) sur ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char *p_char; 
    char *p_char1;
    Donne des noms qui veulent dire quelque chose à tes variables. Ainsi, en lisant le code, on peut le comprendre. Ici, c'est très difficile au premier coup d'oeil.

    Tu fais des cast un peu partout. Au mieux ils sont inutiles, au pire ils sont bizarres. Pourquoi tous ces cast ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char GPSGSM::getPar(char *str_long, char *str_lat, char *str_alt, char *str_time, char *str_speed)
    Je ne suis pas fan de la notation hongroise système dont tu sembles t'inspirer mais c'est un choix. En revanche, vu le nombre de paramètres de ta fonction, tu devrais sûrement faire une structure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcpy(str_long, (char *)(p_char1));
    Je n'ai pas vu d'allocation mémoire pour str_long, l'as-tu faite ailleurs ?

    Globalement, j'ai l'impression que tu utilises deux pointeurs pour déterminer la position de début et la position de fin d'une chaine. Ensuite, tu fais des *p_char1 = 0; pour pouvoir copier la sous-chaine avec strcpy() qui va s'arrêter au bon endroit. Deux possibilités :
    • il existe strtok() si tu es d'accord de casser ton buffer d'entrée comme tu le fais ici
    • tu peux calculer le nombre de caractères avec une arithmétique de pointeurs et utiliser strncpy() pour préserver le buffer d'entrée


    Des remarques qui ne sont pas du C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gsm.SimpleWriteln("AT+CGPSINF=0");
    gsm.WaitResp(5000, 100, "OK");
    Soit tu utilises un objet global nommé gsm et ce n'est pas terrible ; soit tu utilises des méthodes qu'on appelle statiques en Java , cad accessibles sans instance (je ne sais plus si C++ possède un tel mécanisme et si oui comment) et ce n'est en général pas trop apprécié en conception objet.

    La remarque suivante me fait pencher pour le cas 1.

    ...gsm.comm_buf...
    Ca sent le champ publique qui n'est pas une constante. Et c'est généralement mal en objet car cela casse l'abstraction qui est l'un des principaux objectifs de la POO.

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bktero Voir le message
    il existe strtok() si tu es d'accord de casser ton buffer d'entrée comme tu le fais ici
    Salut
    Attention à strtok(), elle est dépréciée de par son buffer static. Ce buffer lui permet de s'y retrouver entre différents appels mais empêche son utilisation de façon imbriquée (comme par exemple appeler strtok() pour extraire une sous-chaine renvoyée par un strtok() supérieur).
    Mieux vaut lui préférer strtok_r() dans lequel c'est toi qui gère son buffer tampon.

    Citation Envoyé par Bktero Voir le message
    ...soit tu utilises des méthodes qu'on appelle statiques en Java , cad accessibles sans instance (je ne sais plus si C++ possède un tel mécanisme et si oui comment)
    Oui oui, C++ connait les méthodes statiques de classes. Faut juste mettre "static" devant le nom de la méthode.

    Citation Envoyé par pierrot10 Voir le message
    En attendant, je souhaiterais savoir s'il y a la possiblité de déplacer le point de 2 positions, car je doute qu'un puisse diviser un char par 100?
    Un char est un nombre compris entre 0 et 255 donc oui, on peut parfaitement le diviser par 100. Mais bien entendu je ne pense pas que cette réponse corresponde à ton besoin (voir remarques de Bktero sur les différences entre "char" et "chaine de caractères" qui se traduit en C par "tableau de char").

    Sinon voici une petite fonction codée à l'arrache permettant de décaler ta fameuse virgule. A quelques détails près, tu verras que tu aurais pu la trouver toi-même.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void decal_virg(char *str)
    {
        char *pt;
        if ((pt=strchr(str, ',')) == NULL) return;
        if (pt == str || (pt-1) == str) return;
        // Attention, ne pas écrire if ((pt-1) <= str) return => comportement indéterminé
        *pt=*(pt - 1);
        *(pt-1)=*(pt - 2);
        *(pt - 2)=',';
    }
    Concernant la ligne où j'indique de ne pas taper directement sur pt-1; c'est suite à une discussion avec Emmanuel Delahaye où il m'a dit que si un pointeur était en dehors d'une zone accessible, même demander ne serait-ce que sa valeur (sans même demander son contenu) produisait quand-même un comportement indéterminé. Comme quoi, s'il revient ici il verra que je n'ai jamais oublié ses enseignements
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre régulier Avatar de Mipwiq
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 42
    Points : 81
    Points
    81
    Par défaut
    Bon alors je vais prendre le temps de passer sur les erreurs que je vois, que ce soit dans ton code ou dans ta manière de dire les choses.

    Je récupère la position d'un GPS d'un char

    Cette phrase ne veut rien dire, essaie de bien comprendre que quand il y a plusieurs caractères comme dans "char lat[15];" tu ne dois surtout pas appeler ça un char c'est une faute grave qui te vaudra l'incompréhension des gens avec qui tu parles. On te l' a déjà expliqué, dans ces cas là on parle de CHAINE DE CARACTÈRE, de TABLEAU DE CHAR, mais certainement pas de char. Un char est un type de variable qui ne peut contenir qu'un caractère.

    Donc pour en revenir à ta manière de dire : ce serrait plutôt la position GPS dans une CHAINE DE CARACTÈRE, ou dans un TABLEAU DE CARACTÈRE.

    Ensuite :

    voici la fonction qui me retourne les valeur
    Je suis désolé mais les seules valeurs que renvoie ta fonction sont 1 ou 0.
    (personnellement je ne trouve pas qu'un char soit adapté pour ça, mais ça marche ^^')
    Quand tu utilises des pointeurs passés en paramètre, les valeurs sont modifiées mais les pointeurs ne sont pas censé trop bouger sinon tu risque de perdre les adresses sur lesquelles ils pointaient.

    Enfin viens la fameuse fonction. Je ne vais pas te le cacher elle n'est pas facile à comprendre que ce soit au niveau de tes choix comme au niveau de ta syntaxe.

    C'est pourquoi pour cette partie je te demande d'expliquer ce que tu pense que chaque ligne fait, il n' y a parfois rien de mieux qu'une bonne relecture pour comprendre d'où viens le problème (que ce soit pour le code ou pour les questions)

    EDIT: ps Sve@n un char est compris entre -128 et 127

  9. #9
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    EDIT: ps Sve@n un char est compris entre -128 et 127
    vs
    Un char est un nombre compris entre 0 et 255
    ?
    Citation Envoyé par n1256
    6.2.5 Types
    15 The three types char, signed char, and unsigned char are collectively called the character types. The implementation shall define char to have the same range, representation, and behavior as either signed char or unsigned char^35)

    35) CHAR_MIN, defined in <limits.h>, will have one of the values 0 or SCHAR_MIN, and this can be used to distinguish the two options. Irrespective of the choice made, char is a separate type from the other two and is not compatible with either.

    6.3.1.1 Boolean, characters, and integers
    3 [..]As discussed earlier, whether a ‘‘plain’’ char is treated as signed is implementation-defined.
    Aucun de vous deux n'a raison ou tord donc.

    EDIT: @Bysbobo : non

  10. #10
    Membre averti
    Homme Profil pro
    Cadre informatique
    Inscrit en
    Avril 2013
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 183
    Points : 435
    Points
    435
    Par défaut
    Citation Envoyé par Mipwiq Voir le message
    EDIT: ps Sve@n un char est compris entre -128 et 127
    Je pense qu'il voulait juste préciser que -128 à 127 OU 0 à 255 (signed ou unsigned char, ça reste un char ), tu peux diviser par 100 si ça te chante.
    Après, il faut juste bien interprété ce qui en découle ^^

    EDIT: Bktero, t'as fini de me griller?

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Mipwiq Voir le message
    ps Sve@r un char est compris entre -128 et 127
    Je parlais de sa valeur numérique, allant de 0x00 à 0xff ; valeur exprimée en base 16 et que les mathématiques traduisent (en base 10) par "de 0 à 255"
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  12. #12
    Membre régulier Avatar de Mipwiq
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 42
    Points : 81
    Points
    81
    Par défaut
    Oui t'inquiète pas j'avais bien compris, le principal c'est que ca reste un nombre et que donc on peut le diviser, mais ici ce n'est pas la solution au problème de pierrot10 et si on part dans ce sujet ca risque de l'embrouiller plus qu'autre chose.

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Le problème, c'est surtout qu'on a ici un nombre décimal écrit dans une chaîne de caractères.
    Le plus simple est de convertir cette chaîne en nombre à virgule flottante, et de garder cette valeur par la suite.
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char sLat[15];
    ...
     
    double lat = strtod(sLat, NULL);
    printf("%f\n", lat/100.0);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre régulier Avatar de Mipwiq
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 42
    Points : 81
    Points
    81
    Par défaut
    Le plus simple est de convertir cette chaîne en nombre à virgule flottante, et de garder cette valeur par la suite.
    Je suis d'accord sur le fait que à la sortie le résultat est bon, mais ça ne résous pas vraiment le problème

  15. #15
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 625
    Points : 1 564
    Points
    1 564
    Par défaut
    A la lecture de la fonction getPar(), les données sont fournies par une fonction externe, et la fonction getPar() ne fait que découper le string reçu en 4 strings distincts.
    Donc, la position du '.' est bien indépendante du programme.

    Si il faut déplacer le '.' de 2 positions vers la gauche (et conserver la version string des valeurs), la solution de Sve@r est sans doute la plus rapide, mais ceci devrait aussi faire l'affaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(tmp,"%f",strtod(lat,NULL)/100.);
    (j'ignore ce qui se passe si on on remplace tmp par lat)

    Question annexe: que va-t-il se passer dans la fonction getPar() si if(gsm.IsStringReceived("OK")) est faux?
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  16. #16
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Le problème, c'est surtout qu'on a ici un nombre décimal écrit dans une chaîne de caractères.
    Le plus simple est de convertir cette chaîne en nombre à virgule flottante, et de garder cette valeur par la suite.
    Oui mais alors on aura un souci lié à la façon dont l'ordi code les nombres à virgule flottante (perte de précision possible). Ceci dit, on peut présumer que le nombre sera un jour ou l'autre converti en flottant et que ce souci arrivera alors à ce moment là...

    Citation Envoyé par edgarjacobs Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(tmp,"%f",strtod(lat,NULL)/100.);
    (j'ignore ce qui se passe si on on remplace tmp par lat)
    Hum... peut-être risque d'effet de bord. Mieux vaut rester avec tmp...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Déplacer une colonne dans une table...
    Par ralkif dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 07/10/2009, 06h50
  2. Comment déplacer une ligne dans une TStringGrid
    Par blondelle dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/11/2008, 19h08
  3. déplacer une étiquette dans un état sous conditions
    Par françois35 dans le forum IHM
    Réponses: 6
    Dernier message: 28/08/2008, 14h36
  4. Déplacer une image dans un formulaire
    Par WITER dans le forum IHM
    Réponses: 2
    Dernier message: 01/11/2007, 03h47
  5. [débutant]déplacer une ligne dans CListCtrl
    Par mouss31 dans le forum MFC
    Réponses: 4
    Dernier message: 30/10/2006, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo