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 :

affichage en BGI


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Par défaut affichage en BGI
    bonjour,
    je travaille sur un projet en c avec BGI et turbo c et je veux faire apparaitre sur lecran un mot saisi au clavier mais lettre par lettre. jai fait ce code mais il affiche la lettre suivie par dautres symboles.des suggestions? merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    setcolor(15);
    settextstyle(1,0,2);
    k1=0;
    k2=220;
    do
    {ch=getch();
    if (ch!=13)
    {outtextxy(k2,j,&(char)ch);
    nom[k1]=ch;
    k2=k2+15;}
    }while(ch!=13);
    return nom;

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Il me semble que outtextxy est sensée écrire une chaine de caractères. En lui donnant comme paramètres (char*) &ch, on lui demande décrire ce qui se trouve à l'adresse de ch et ce qui suit, jusqu'au premier caractère vide.

    Une solution pour s'assurer que ce qui suit ch est vide est de travailler avec un petit tableau de char :

    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
    char msg[2]; 
     
    setcolor(15);
    settextstyle(1, 0, 2);
    k1 = 0;
    k2 = 220;
    /* mise en place du caractère de fin */
    msg[1] = '\0';
    do {
        /* travail sur le premier caractère */
        msg[0] = getch();
        if (msg[0] != 13) {
            outtextxy(k2, j, msg[0]);
            nom[k1] = msg[0];
            k2 = k2 + 15;
        }
    } while (ch != 13);
    return nom;

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Par défaut
    Citation Envoyé par mabu Voir le message
    Bonjour,

    Il me semble que outtextxy est sensée écrire une chaine de caractères. En lui donnant comme paramètres (char*) &ch, on lui demande décrire ce qui se trouve à l'adresse de ch et ce qui suit, jusqu'au premier caractère vide.

    Une solution pour s'assurer que ce qui suit ch est vide est de travailler avec un petit tableau de char :

    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
    char msg[2]; 
    
    setcolor(15);
    settextstyle(1, 0, 2);
    k1 = 0;
    k2 = 220;
    /* mise en place du caractère de fin */
    msg[1] = '\0';
    do {
        /* travail sur le premier caractère */
        msg[0] = getch();
        if (msg[0] != 13) {
            outtextxy(k2, j, & msg[0]);
            nom[k1] = msg[0];
            k2 = k2 + 15;
        }
    } while (ch != 13);
    return nom;
    merci bien ca a résolu le probleme sauf qu'il ma fallu ajouter le & dans outtextxy.

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par ea2007 Voir le message
    bonjour,
    je travaille sur un projet en c avec BGI et turbo c et je veux faire apparaitre sur lecran un mot saisi au clavier mais lettre par lettre. jai fait ce code mais il affiche la lettre suivie par dautres symboles.des suggestions? merci

    Sais-tu ce qu'est une chaine de caractères ?

    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
     
    {
       setcolor (15);
       settextstyle (1, 0, 2);
       k1 = 0;
       k2 = 220;
       do
       {
          ch = getch ();
          if (ch != 13)
          {
             char s[2] = "";
             *s = ch;
             outtextxy (k2, j, s);
             nom[k1] = ch;
             k2 +=15;
          }
       }
       while (ch != 13);
       return nom;
    }
    Attention, k1 ne change pas. Et j'espère que 'nom' n'est pas un tableau local...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Sais-tu ce qu'est une chaine de caractères ?
    oui bien sur mais je suis encore debutant

    Citation Envoyé par Emmanuel Delahaye Voir le message
    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
     
    {
       setcolor (15);
       settextstyle (1, 0, 2);
       k1 = 0;
       k2 = 220;
       do
       {
          ch = getch ();
          if (ch != 13)
          {
             char s[2] = "";
             *s = ch;
             outtextxy (k2, j, s);
             nom[k1] = ch;
             k2 +=15;
          }
       }
       while (ch != 13);
       return nom;
    }
    Attention, k1 ne change pas. Et j'espère que 'nom' n'est pas un tableau local...
    merci ca marche aussi. c le meme principe que le précédant. bien sur il faut incrementer le k1 et nom c un tableau global.

Discussions similaires

  1. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  2. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00
  3. Affichage de documents PDF
    Par Dajon dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/10/2002, 11h36
  4. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43
  5. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 21h00

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