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 :

Visual C++ : "debug assertion failed" en utilisant


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Points : 38
    Points
    38
    Par défaut Visual C++ : "debug assertion failed" en utilisant
    hello tout le monde.

    Je réalise une application "console" (je débute) dans laquelle je lis un fichier et traite les caractères qu'il contient. Pour cela, j'utilise la fonction isalpha de <cctype>. Le problème, c'est quand le fichier contient des caractères accentués. Par exemple, l'exécution de ... ...provoque l'erreur
    Citation Envoyé par MicroSoft Visual C++ Debug Library
    File : isctype.c
    line : 56
    Expression : (unsigned)(c+1) <= 256
    D'où mes questions :
    - le titre de la fenêtre d'erreur laisse présager que l'erreur ne se produit que dans les programmes compilés avec les compilateurs de MS ? Est-ce vraiment le cas ?
    - quelle est la cause de cette erreur ?
    - comment faire pour la corriger ?

    Merci d'avance.

    DJLil

    PS : j'utilise MS Visual Studio .NET 2003...

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Salut

    - le titre de la fenêtre d'erreur laisse présager que l'erreur ne se produit que dans les programmes compilés avec les compilateurs de MS ? Est-ce vraiment le cas ?
    Ce genre d'erreur survient lorsqu'un assertion a échoué, c'est la macro assert qui la provoque lorsque la condition qu'elle teste n'est pas vérifiée (ici, que le paramètre de isalpha est inférieur à 256). Le titre vient du fait que tu utilises Visual C++ mais c'est une macro de la bibliothèque standard du C, le message changera donc peut-être mais tu auras le même comportement partout.

    - quelle est la cause de cette erreur ?
    Que isalpha n'aime pas les caractères spéciaux .

    - comment faire pour la corriger ?
    Je ne sais pas trop si tu peux. Ou alors coder toi-même une fonction IsAlpha qui tient compte de ce problème.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup pour cette réponse. C'est tout ce que je voulais savoir...

    PS : seulement 8 minutes avant une réponse détaillée : quelle efficacité !!

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 013
    Points
    11 013
    Par défaut
    Il me semble qu'il existe un isalpha propre au C++ -> il est dépendant d'une locale passée en paramètre.
    Cela pourrait peut-etre améliorer les choses.

    Il reste bizarre que tu es une telle erreur. Que vaut 'é' (quand tu le convertis sauvagement en unsigned int) ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Debug Assertion Failed ! File: dbgheap.c
    Par jacques_henry dans le forum MFC
    Réponses: 9
    Dernier message: 15/04/2015, 11h29
  2. debug assertion failed sur un delete venant d'une DLL
    Par italiasky dans le forum Visual C++
    Réponses: 13
    Dernier message: 02/12/2008, 15h02
  3. Debug Assertion Failed lors de l'éxécution
    Par Keweed dans le forum Ogre
    Réponses: 8
    Dernier message: 14/06/2008, 15h27
  4. debug assertion failed: dbgheap.c
    Par lolo le belge dans le forum Visual C++
    Réponses: 5
    Dernier message: 17/05/2007, 22h04
  5. debug assertion failed...
    Par BnY dans le forum MFC
    Réponses: 2
    Dernier message: 18/04/2006, 16h49

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