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 :

probleme lors de l'execution de mon programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut probleme lors de l'execution de mon programme
    bonjour;
    j'ai à effectuer un programme qui donne le code ascii d'une touche tapée au clavier;
    voila le programme que j'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include<stdio.h>
    void main ()
    {
    char c;
    unsigned char c;
    printf("taper une touche");
    c=getchar();
    printf("le code ascii de %c est:%d",c,c);
    bon je travaille sous visual c++;mais lors de ma compilation on m'a signalé une erreur qui est:'c' redifinition diffrent basic types!
    merci

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <stdio.h>
     
    int main (void)
    {
       int c;
       printf("taper une touche");
       c=getchar();
       printf("le code ascii de %c est:%d\n",(char)c,c);
       return 0;
    }

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include<stdio.h>
     
    int main (void)
    {
       int c;
       printf("taper une touche");
       c=getchar();
       printf("le code ascii de %c est:%d\n",(char)c,c);
       return 0;
    }
    ça aussi n'a pas marché!

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    ça aussi n'a pas marché!
    c'est à dire?

  5. #5
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut
    Le code qu’on vous a proposé marche bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include<stdio.h>
    void main ()
    {
    unsigned char c;
    //unsigned char c;
    printf("taper une touche");
    c=getchar();
    printf("le code ascii de %c est:%d",c,c);
    }
    je l’ai essayé sous Visual Studio Express 2005

  6. #6
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Ca compile peut être chez certain mais c'est :

    Tout à fait incorrect !!!

    on est plus le premier avril !

    Voilà un code correct (programmé en 2minutes sous linux kubuntu par moi meme à 3H54 [je suis crevé] )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
    	char c[256];
    	int codeASC = 0;
    	fprintf(stdout, "Tapez une touche: ");
    	fgets(c, sizeof c, stdin);
    	/* Normalement on fait un fclean ici mais j'ai la flemme de re'ecrire la fonction */
    	codeASC = *c;
    	fprintf(stdout, "le code ascii de %s est: %d\n\n", c, codeASC);
    	return 0;
    }
    Bonne journée (pour moi : bonne nuit )

  7. #7
    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 archer Voir le message
    Le code qu’on vous a proposé marche bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include<stdio.h>
    void main ()
    {
    unsigned char c;
    //unsigned char c;
    printf("taper une touche");
    c=getchar();
    printf("le code ascii de %c est:%d",c,c);
    }
    je l’ai essayé sous Visual Studio Express 2005
    Pas du C standard...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:3: warning: function declaration isn't a prototype
    main.c:3: warning: return type of 'main' is not `int'
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 1 seconds)
    0 errors, 2 warnings
    Le code de ultimate_manx est presque correct. Après mise au point :
    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
     
    #include <stdio.h>
     
    static void purge (void)
    {
       int c;
       while ((c = getchar ()) != '\n' && c != EOF)
       {
       }
    }
     
    int main (void)
    {
       /* Declaration de ta variable c */
       int c;
     
       /* Recuperation et affichage du résultat */
       c = getchar ();
       /* nettoyage */
       if (c != '\n')
       {
          purge ();
       }
     
       printf ("Le code du caractere '%c' est: %d\n", c, c);
     
       /* pause */
       getchar ();
     
       return 0;
    }

  8. #8
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    mais lors de ma compilation on m'a signalé une erreur qui est:'c' redifinition diffrent basic types!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char c;
    unsigned char c;
    c est-il char ou unsigned char ?

  9. #9
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Citation Envoyé par diogene Voir le message
    c est-il char ou unsigned char ?
    en fait la donnée est c sous forme de caractere et mon resultat sera c sous forme entier c'est pour cette raison que j'ai declarer c 2 fois!

  10. #10
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut
    Tu as fais deux declarations de ta variable c.

    unsigned char c;
    char c;

    Fais en une seule et tn programme devrait marcher. Soit tu mets
    unsigned char c

    ou soit

    char c

    mais pas les deux à la fois.

  11. #11
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Citation Envoyé par ultimate_manx Voir le message
    Tu as fais deux declarations de ta variable c.

    unsigned char c;
    char c;

    Fais en une seule et tn programme devrait marcher. Soit tu mets
    unsigned char c

    ou soit

    char c

    mais pas les deux à la fois.
    j'ai essayé avec ta suggestion ;mais le code ascii de n'importe valeur tapée reste la meme et il m'affiche qu'il egale à 32

  12. #12
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut
    Essaye avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
    int main(int argc, char** argv)
    {
        //Declaration de ta variable c
        int c;
     
        //Recuperation et affichage du résultat
        c = getchar();
        printf("La code de la touche %c frappee est: %d\n",c,c);
     
        //Ce getchar la ne sert qu'a faire une pause dans le programme
        getchar();
    }
    Ce bout de code fonctionne tres bien et devrait te donner le resultat que tu souhaites.

  13. #13
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Par défaut
    Bonsoir,

    En C déclarer en char ou int ne pose pas des problèmes de compilation, puisqu'en interne, le type char stocke la valeur ascii (en type entier) du caractère.

    mais tu ne peux pas déclarer une variables avec deux types différents.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/12/2009, 23h18
  2. Probleme lors de la compilation d'un programme
    Par ToMs dans le forum wxWidgets
    Réponses: 4
    Dernier message: 15/06/2006, 18h50
  3. Bip lors de l'execution d'un programme
    Par Lolita59 dans le forum C
    Réponses: 6
    Dernier message: 04/05/2006, 15h49
  4. Problème lors de l'exécution d'un exe
    Par mbibim63 dans le forum JBuilder
    Réponses: 1
    Dernier message: 04/01/2006, 13h13
  5. [ADO] Probleme lors de l'execution d'une requete...
    Par NoisetteProd dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 12h43

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