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

  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 398
    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 398
    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 _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

  8. #8
    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.

  9. #9
    Vestigo
    Invité(e)
    Par défaut
    Bon je vais pas mentir, il y'a pas mal de truc que j'ai pas compris, mais j'ai trouvé un tuto qui explique tous ça. Je reposte si problème.

    Merci encore.

  10. #10
    Vestigo
    Invité(e)
    Par défaut
    J'avais trouver un tuto sur google, mais faut bein se rendre à l'évidence, il ne vaut sûrement pas les cours et tutoriels programmation C de Developpez. Qui pourait m'expliquer clairement les avantages de "fgets" ou quelques choses comme ça? Par rappport à un "scanf"?
    et si vous avez des liens pour m'expliquer tous ça.(de préférence de developez c'est les seules que je comprend ).

    Merci.

  11. #11
    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

  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 Vestigo Voir le message
    Qui pourait m'expliquer clairement les avantages de "fgets" ou quelques choses comme ça? Par rappport à un "scanf"?
    http://emmanuel-delahaye.developpez.com/inputs.htm

    Un peu plus théorique et technique :

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers
    http://emmanuel-delahaye.developpez.com/notes.htm#fgetc

  13. #13
    Vestigo
    Invité(e)
    Par défaut
    Merci pour tous. Je vais voir tous ça. Je sais demain que c'est la rentrée ,mais je ne rentre qu'a partir de 13h45 alors j'ai de la lecture!

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