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 :

Erreur programme en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Vestigo
    Invité(e)
    Par défaut Erreur programme en C
    Bonjour tous le mode j'ai un problème avec mon 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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main(int argc, char *argv[])
    {
          int age=0;
          char prenom[50];
          char nom[200];
     
          printf("\nBonjour voici un petit questionnaire.\n");
          printf("Quel est votre age (le questionnaire s'adapte en fonction de l'age)?");
          scanf("ld",&age);
     
          if(age=11)
          {
                 printf("Merci\n");
                printf("Veuillez entrez votre nom suivi de votre prenom\n");
                printf("Votre nom  est:\n ");
                scanf("%s",nom);
                printf("Merci");
                print("Votre prenom est:\n");
                scanf("%s",prenom);
                printf("Merci.");
          }
          return 0;
    }
    pouvez vous m'aider.

    Merci
    Dernière modification par gl ; 03/09/2007 à 20h45.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par défaut
    1. Signe '%' manquant dans le premier scanf().
    2. '=' au lieu de '==' dans le premier if.
    3. Utilisation de scanf("%s") sans limite de taille: L'une des deux pires utilisations possibles de scanf().
    4. Oubli de caractère séparateur (espace ou fin de ligne) dans le printf() juste après: La ligne donnera "MerciVotre prenom est:"
    5. Récidive de scanf("%s").
    6. Récidive de printf() non-terminé.


    Edit: stephl!
    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.

  3. #3
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    scanf("%d",&age);
    ...
    if(age==11)
    ...
    + attention aux scanf() dangereux.

  4. #4
    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
    Utilise plutôt : fgets(maChaine, sizeof maChaine, stdout);

  5. #5
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Utilise plutôt : fgets(maChaine, sizeof maChaine, stdout);
    Mauvais flux, c'est stdin.

  6. #6
    Vestigo
    Invité(e)
    Par défaut
    C'est bon tous est OK.

    Merci pour tous les amis!

  7. #7
    Membre éclairé
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Par défaut
    Citation Envoyé par Vestigo Voir le message
    Merci, mais que dois je faire pour le scanf ? J'ai pas compris.
    Ne pas l'utiliser, c'est trop complexe pour un débutant.
    A la place, on te propose une autre fonction de saisie : fgets ().
    Petit exemple d'utilisation :
    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
    #include <stdio.h>
    #include <string.h>
     
    #define TAILLE_S 8
     
    int main (void)
    {
       char s[TAILLE_S] = {0};
     
       /* saisie sur le clavier */
       fgets (s, sizeof s, stdin);
     
       /* reste-t-il des caracteres non lus ? */
       {
          /* on recherche le caractere de fin de ligne */
          char *p = strchr (s, '\n');
     
          if(p != NULL)
          {
             /* on supprime le caractere de fin de ligne */
             *p = '\0';
     
             /* on affiche la saisie */
             printf ("s : %s", s);
          }
          else
          {
             /* on lit un a un les caracteres restants dans stdin
             afin de "purger" le flux */
             int c;
             while ((c = getchar ()) != '\n' && c != EOF);
          }
       }
     
       return 0;
    }
    Pose des questions si tu ne comprends pas.

  8. #8
    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
    Citation Envoyé par stephl Voir le message
    Mauvais flux, c'est stdin.
    Tout à fait Je suis fatigué, j'ai confondu avec fprintf

Discussions similaires

  1. [Win2000] Erreur programme SVCHOST.EXE en faisant Windows Update
    Par annedeblois dans le forum Windows 2000/Me/98/95
    Réponses: 0
    Dernier message: 11/10/2007, 21h53
  2. Erreur programme d'envoi fichier sur serveur ftp
    Par batssa dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2007, 14h30
  3. ERREUR : programme d'installation
    Par shamima-woop dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 05/07/2007, 17h27
  4. Erreur Programmes!!! (ebesoin d'aide)
    Par charfamine dans le forum MFC
    Réponses: 6
    Dernier message: 08/04/2006, 13h16
  5. [MySQL] Erreur programme
    Par Didier100 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/01/2006, 22h12

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