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 :

Aide pour mon programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Par défaut Aide pour mon programme
    mon programme est le suivant:
    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
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    void main()
    {
    char s;
    char nom[10];
    printf("ENTRER VOTRE NOM:");
    scanf("%s",nom);
    printf("ENTRER VOTRE SEXE:");
    scanf("%c",&s);
    if ((s=='m')||(s=='M'))
    printf("Bonjour Mr %s ",nom );
    else
     if ((s=='f')||(s=='F'))
     printf("Bonjour Mme %s",nom);
    getch();
    return 0;
    }
    Mon problème est que lors de l'exécution, il ne me laisse pas saisir le sexe et se plante. Par contre si je fais la saisie du sexe avant celle du nom, le programme s'exécute correctement. Je ne comprends vraiment pas.
    Notons que j'utilise turbo c++ 4.5

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

    Il faut vider le buffer d'entrée après avoir utilisé scanf.
    http://c.developpez.com/faq/?page=cl...buffer_clavier

    PS : main est de type int, pas void.

  3. #3
    Membre éprouvé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Par défaut
    Citation Envoyé par mabu Voir le message
    PS : main est de type int, pas void.
    Quand il ne retourne rien, on utilise void.

  4. #4
    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
    main() retourne toujours un int. C'est la norme !

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    main() ne retourne jamais "rien du tout". Un programme a toujours un code de retour!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre éprouvé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Par défaut
    Ok, merci. Par contre je fais ça, tout fonctionne bien.

    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<conio.h>
    void main()
    {
    char nom[20],s,t;
    printf("PROGRAMME DE SALUTATION\n\nENTRER VOTRE NOM SVP:");
    scanf("%s",nom);
    printf("\nTAPEZ M/m POUR MASCULIN OU F/f POUR FEMININ:");
    fflush(stdin);
    scanf("%c",&s);
    if((s=='M')||(s=='m'))
    printf("\nBONJOUR MONSIEUR %s",nom);
    else
    if((s=='F')||(s=='f'))
    {fflush(stdin);
    printf("\nENTRER VOTRE STATUT:");
    scanf("%c",&t);
    if((t=='M')||(t=='m'))
    printf("\nBONJOUR MADAME %s",nom);
    else
    if((t=='C')||(t=='c'))
    printf("\nBONJOUR MADEMOISELLE %s",nom);
    else
    printf("\nCE STATUT N'EST PAS RECONNU");
    }
    else
    printf("\n CE SEXE N'EST PAS RECONNU");
    getch();
    }
    Mais j'ignore toujours pourquoi ?

  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 vg-matrix Voir le message
    Mon problème est que lors de l'exécution, il ne me laisse pas saisir le sexe et se plante. Par contre si je fais la saisie du sexe avant celle du nom, le programme s'exécute correctement.
    Cette histoire de saisie de sexe me laisse perplexe !


    Sans parler de

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 54
    Par défaut
    On voit les personnes qui sortent du BTS (comme moi) qui ont appris avec

    "nous à la base on faisait meme void main (void) parceque le prof veut pas t'embrouiller au debut à t'expliquer à quoi ça sert"

    On avait pas eu de probleme nous pour ce type de fonction, on utilisait Borland, mais c'est vrai que lorsque je codais sur code::block je mettais toujours int sinon il n'acceptait pas.

    Apres pour le fflush(stdin) c'est vrai que ce n'est pas bien, mais pour commencer ça fonctionne c'est vrai, j'y ai eu le droit aussi pendant un an :p

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Hélas, j'ai eu droit à ça aussi en BTS (Lycée Jules Ferry, Versailles).

    Mais le cours de "C++" était d'une qualité bien pire.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    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 shadowking91 Voir le message
    On voit les personnes qui sortent du BTS (comme moi) qui ont appris avec

    Cay mal :
    • Il n'y a pas de 'Void', mais il y a 'void'.
    • main() retourne int. Toujours.

    Je rappelle que quand le C a été crée, 'void' n'existait pas. On définissait main() comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    main() /* int implicite */
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main() /* int explicite */
    Apres pour le fflush(stdin) c'est vrai que ce n'est pas bien, mais pour commencer ça fonctionne c'est vrai, j'y ai eu le droit aussi pendant un an :p
    Sous Linux, ça ne fonctionne pas du tout... C'est une extension (facultative) de DOS/Windows.

  11. #11
    Membre éprouvé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Par défaut
    tout le monde, je constate maintenant que le fait de coder comme des personnes qui font du n'importe quoi n'est pas une faute qui nous est propre. Bon nombre comme moi l'on appris au BTS (j'ai fais le mien dans une école à Abidjan c'est en Côte d'Ivoire). Les professeurs ne nous disent pas d'où ces choses viennent et pourquoi les utiliser ou pas, une fois que ça marche, on adopte et c'est tout. Ce sont des choses à revoir .

  12. #12
    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 vg-matrix Voir le message
    <...>Ce sont des choses à revoir .
    C'est pour ça qu'on s'efforce de rétablir la vérité...

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

Discussions similaires

  1. demande d'aide pour mon programme
    Par doumont dans le forum Débuter
    Réponses: 2
    Dernier message: 29/01/2014, 09h49
  2. Réponses: 8
    Dernier message: 30/05/2013, 13h28
  3. Demande d'aide pour mon premier programme
    Par ne2sbeal dans le forum Windows Forms
    Réponses: 6
    Dernier message: 21/01/2009, 21h53
  4. Aide pour mon programme en C# SVP
    Par eurikain dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/01/2008, 15h53
  5. besoin d'aide pour mon programme
    Par pouyoudu17 dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 28/05/2007, 22h18

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