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

Code::Blocks Discussion :

Pb avec fonctions isspace, isalpha, isdigit


Sujet :

Code::Blocks

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Pb avec fonctions isspace, isalpha, isdigit
    Bonjour,
    Je fais le portage vers Linux d'une application développée en "C" sous Windows. Sous Linux ( Ubuntu 7.04 ) j'utilise la version de Code::Blocks la plus récente (22/05/2007) à ce jour et gcc 4.1.2.
    Mon problème : sous Code::Blocks les fonctions basiques de type isspace(), isalpha(), isdigit() ... ne me renvoient pas le bon code de retour ( par exemple isspace() retourne 0 avec un paramêtre comme tab ou espace en entrée ).
    Si je compile et linke le même source en dehors de l'IDE ( gcc -o main main.c ) ca fonctionne !!
    J'ai regardé les options du compilo sous Code::Blocks mais je ne vois rien d'anormal.
    Une idée ??
    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu peux montrer le code qui ne va pas ?
    Chez moi à priori tout va bien.
    Tu as quel version de C::B ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    voici le code que j'utilise

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include <locale.h>
     
    int main()
    {
     
        int cr ;
        unsigned char caractere ;
        char *pLocale;
     
        pLocale = setlocale( LC_ALL, NULL ) ;
        printf( "Localisation courante : %s\n", pLocale) ;
     
        caractere = 'a' ;
        cr = isspace( caractere ) ;
        printf( "isspace : cr : %d, caractere : %d\n", cr, caractere ) ;
     
        caractere = '\t' ;
        cr = isspace( caractere ) ;
        printf( "isspace : cr : %d, caractere : %d\n", cr, caractere ) ;
     
        caractere = ' ' ;
        cr = isspace( caractere ) ;
        printf( "isspace : cr : %d, caractere : %d\n", cr, caractere ) ;
     
    	return 0;
    }
    J'obtiens les résultats suivants avec ce code compilé sous CB

    Localisation courante : C
    isspace : cr : 0, caractere : 97
    isspace : cr : 0, caractere : 9
    isspace : cr : 0, caractere : 32

    avec exactement le même source compilé à l'extérieur de l'environnement ( gcc -o main main.c ), j'obtiens ceci

    Localisation courante : C
    isspace : cr : 0, caractere : 97
    isspace : cr : 8192, caractere : 9
    isspace : cr : 8192, caractere : 32

    Strange non !!!

    J'avais auparavant la version CB du 14/04/2007 rev 3855, j'ai installé hier la dernière version de CB du 22/05/2007 rev 3988 mais ca ne change rien. J'ai d'un autre côté une version CB installée sous Windows qui fonctionne correctement.

    J'ai pris isspace comme exemple, mais le problème est le même pour ses copines ( isdigit, isupper, isalpha ... ). Je ne pense pas que ce soit un problème avec mon code mais plutôt un problème de configuration mais euh... je ne vois pas bien où cela pourrait se situer.

    A+

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    re-Bonjour,

    Je viens d'essayer le même bout de code que j'indiquais dans le message précédent sur un autre PC installé avec les mêmes versions Ubuntu, CB et gcc et et .... ca marche !!!!

    Il s'agit donc bien d'un problème de configuration ou d'installation que je ne comprends pas trop pour l'instant. Je vous informe dès que j'ai du nouveau.

    A+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    re-re-Bonjour,

    J'ai fini par tordre le coup à ce problème
    Lorsque l'on utilise les fonctions que je citais ( isspace, isdigit ... ) il faut inclure dans le fichier source qui les utilise ctype.h. Hors ctype.h inclu lui même endian.h. Pas de chance pour moi, dans mon projet une de mes multiples librairies comportait également un fichier endian.h qui n'avait bien sur rien à voir avec celui attendu par ctype.h. ctype.h ne retrouvait donc pas les options de compilation attendues d'ou les défauts que j'ai rencontrés. J'ai donc renommé le fichier endian.h de ma librairie.

    Ouff !!!

  6. #6
    Invité
    Invité(e)
    Par défaut
    tout est bien qui finit bien. C'était quand même étonnant que ça ne fonctionne pas sauf si t'as machine était possédée

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

Discussions similaires

  1. pb avec la fonction isspace
    Par salseropom dans le forum C
    Réponses: 7
    Dernier message: 01/12/2006, 14h12
  2. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52
  3. Réponses: 3
    Dernier message: 16/06/2004, 11h26
  4. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42
  5. [VStudio 6] pb avec fonctions dans une DLL
    Par MogDeChNord dans le forum MFC
    Réponses: 8
    Dernier message: 08/01/2004, 08h57

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