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

MFC Discussion :

CString: un chiffre?


Sujet :

MFC

Vue hybride

debutanteVB.NET CString: un chiffre? 12/03/2008, 12h24
farscape salut, voir faq:... 12/03/2008, 12h46
debutanteVB.NET J'avai en effet lu ça mais ce... 13/03/2008, 16h25
farscape ce code : #include... 13/03/2008, 16h43
Médinoc Version CORRECTE: #include... 14/03/2008, 12h05
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 109
    Par défaut CString: un chiffre?
    Bonjour,

    J'ai un CString qu'un utilisateur rentre dans l'IHM, je voudrais vérifier s'il met bien un chiffre (un long plus exactement).

    J'ai essayé avec Format("%ld", leCString); mais je ne peux pas savoir si c'était un chiffre... ou alors peut etre en comparant le résultat obtenu avec le chiffre de départ?

    Quelqu'un pourrait il m'aider?

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    voir faq:
    http://cpp.developpez.com/faq/vc/?pa...ConvertCString
    en utilisant strtol il y a la notion d'erreur ,si la chaine est vide c'est que c'est bon..

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 109
    Par défaut
    J'avai en effet lu ça mais ce n'était pas clair comment l'utiliser.


    char *stopstring="";
    double x = strtod( monCString, &stopstring );

    J'ai un problème car par exemple si monCString="76543" x=76.00 et stopstring=543!

    si je met int x... stopstring!=0 aussi...

    Comment faire?
    Et ensuite, je dois tester si le pointeur ou la valeur sont nuls?

    Tu peux m'en dire un peu plus s'il te plait, j'y arrive pas

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #include <stdlib.h>
     
    char *stopstring="";
    CString monCString="76543";
    double x = strtod( monCString, &stopstring );
    fonctionne très bien si tu n'est pas en UNICODE...

    version UNICODE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TCHAR *stopstring=_T("");
        CString monCString=_T("76543");
        double x = wcstod( monCString, &stopstring );

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Version CORRECTE:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdlib.h>
    #include <tchar.h>
     
    ...
     
    TCHAR *stopstring=NULL;
    CString monCString=_T("76543");
    double x = _tcstod( monCString, &stopstring );
    PS: Tiens, je viens de voir que strtol()/strtod() était aussi const-incorrect que la version C de strchr()...
    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.

Discussions similaires

  1. extraire 2 chiffres après virgule ?
    Par nerick dans le forum C
    Réponses: 2
    Dernier message: 13/12/2002, 17h10
  2. Convertion de type VARIANT à type CString
    Par j_grue dans le forum MFC
    Réponses: 2
    Dernier message: 07/11/2002, 14h18
  3. [VB6] [Printer] Chiffres alignés à droite
    Par Laye dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/10/2002, 18h36
  4. Chiffre a Virgule Fixe
    Par garybaldi dans le forum C
    Réponses: 3
    Dernier message: 21/06/2002, 10h41
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

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