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 :

problème lors de l'appel d'une méthode


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 61
    Points
    61
    Par défaut problème lors de l'appel d'une méthode
    Salut !
    J'ai écris un petit programme en langage C, avec une méthode qui fait changer les couleur font et écriture le problème c'est que j'arrive pas l'appeler plusieur fois dans une autre méthode, j'ai le droit a un seul appel de cette méthode de couleur voici mes deux méthode

    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
     
     void Color(int couleurDuTexte,int couleurDeFond) // fonction d'affichage de couleurs
    {
            HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);
            SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
    }
        /*
            0 : Noir
            1 : Bleu foncé
            2 : Vert foncé
            3 : Turquoise
            4 : Rouge foncé
            5 : Violet
            6 : Vert caca d'oie
            7 : Gris clair
            8 : Gris foncé
            9 : Bleu fluo
            10 : Vert fluo
            11 : Turquoise
            12 : Rouge fluo
            13 : Violet 2
            14 : Jaune
            15 : Blanc
        */
    méthode ou j'appelle la 1ere méthode Color

    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
    void afficher()
     
    {int i,j;
    Color(5,0); //celt appel marche
    printf("/***************Table des symboles IDF et des CONST*************/\n");
     
     
     Color(0,5);// ça beug 
    printf("______________________________________________________________________\n\n");
     printf("Case\t\t\t Name \t\t\t  Type\t\t Valeur\n");
     
    		printf("-------------------------------------------------------------------------------   \n");
    for(i=0;i<1000;i++)
    {  j=0;
     while (j<1000 && tab[i][j].state==1)
      {  
      printf("|%d %d \t|%30s \t|%8s",i,j,tab[i][j].name,tab[i][j].type);
      // printf("case:  %d  %d \n",i,j);
      // printf("Entité:  %s ",tab[i][j].name);
      // printf("Type:  %s ",tab[i][j].type);
       if((strcmp(tab[i][j].type,"reel")==0)||(strcmp(tab[i][j].type,"entier")==0)) // pour les constantes
       printf("\t|%8f\n",tab[i][j].val);
       else
       printf("\n");
     
       j++;
       } //fin while
    } //fin for
    printf("\n/***************Table des symboles mots clés*************/\n\n");
    printf("Case\t\t\tName \t\t\t\tType                                   \n"); 
    printf("----------------------------------------------------------------------------    \n");
    for(i=0;i<40;i++)
    { j=0;
    while (j<40 && tabm[i][j].state==1)
    { 
    printf("|%d %d \t\t|%17s \t|%10s\n",i,j,tabm[i][j].name,tabm[i][j].type);
    //printf("case:  %d  %d \n",i,j);
    //printf("Entité:  %s ",tabm[i][j].name);
    //printf("Type:%s\n\n",tabm[i][j].type);
    j++;
    } //fin while
    } //fin for
    printf("\n/***************Table des symboles séparateurs*************/\n\n");
    printf("Case\t\t\tName \t\t\t\tType                                   \n"); 
    printf("---------------------------------------------------------------------------    \n");
    for(i=0;i<40;i++)
    {j=0;
    while (j<40 && tabs[i][j].state==1)
    { printf("|%d %d \t\t|%17s \t|%10s\n",i,j,tabs[i][j].name,tabs[i][j].type);
    //printf("case:  %d  %d \n",i,j);
    //printf("Entité:  %s ",tabs[i][j].name);
    //printf("Type:   %s\n\n",tabs[i][j].type);
    j++;
    } //fin while
    } //fin for
    } //fin affichage
     
    /*affichage en couleur*/

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 581
    Points
    41 581
    Par défaut
    Il va falloir plus d'infos sur l'erreur que "ça beug".
    Et aussi, savoir quel Windows tu utilises, car j'ai déjà constaté des problèmes sur certaines versions.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 61
    Points
    61
    Par défaut
    J'utilise windows 7, l'appel de la méthode marche une seule fois, la 1 ere fois marche, quand j'appel une autre fois le programme beug et y a ni couleur ni exécution
    Ce que je veux faire est de colorer chaque table avec une couleur, hors que la c'est soit une seule couleur soit un beug
    Mercii

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 581
    Points
    41 581
    Par défaut
    "ni couleur ni exécution" ça veut dire que le programme stoppe immédiatement?

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 61
    Points
    61
    Par défaut
    Oui il stop quand je fais la 2eme appels

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 581
    Points
    41 581
    Par défaut
    Aucun problème chez moi avec ce code:
    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
    /*
    http://www.developpez.net/forums/d1328461/c-cpp/c/debuter/probleme-lors-lappel-methode/#post7222875
    */
    #include <windows.h>
    #include <stdio.h>
     
    static void Color(int couleurDuTexte,int couleurDeFond) // fonction d'affichage de couleurs
    {
    	HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);
    	SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
    }
     
    static void afficher()
    {
    	//int i,j;
    	Color(5,0); //celt appel marche
    	printf("/***************Table des symboles IDF et des CONST*************/\n");
     
     
    	Color(0,5);// ça beug 
    	printf("______________________________________________________________________\n\n");
    	printf("Case\t\t\t Name \t\t\t  Type\t\t Valeur\n");
     
    	printf("-------------------------------------------------------------------------------   \n");
    }
     
    int main(void)
    {
    	afficher();
    	return 0;
    }
    Le problème doit donc venir d'autre chose, par exemple tes tableaux.

  7. #7
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    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 482
    Points : 13 680
    Points
    13 680
    Billets dans le blog
    1
    Par défaut
    Pas de soucis à l'exécution chez moi non plus : Windows 7 et Codeblocks.

Discussions similaires

  1. Problème de timeout lors de l'appel d'une méthode Stop
    Par drieu13 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 12/04/2012, 16h53
  2. problème lors de l'appel d'une méthode
    Par sfaxian dans le forum VB.NET
    Réponses: 9
    Dernier message: 10/07/2009, 14h39
  3. POO Trap lors de l'appel d'une méthode
    Par QAYS dans le forum Delphi
    Réponses: 3
    Dernier message: 05/06/2007, 21h22
  4. Problème lors de l'appel d'une procédure stockée
    Par ToxiZz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/05/2006, 23h42
  5. [POO] Problème lors de l'appel d'une propriété d'un objet.
    Par akecoocoo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2005, 08h51

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