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 :

problème scanf


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Par défaut problème scanf
    Bonjour,

    j'ai un petit problème avec celui là:
    int lg;
    char nom[50];
    char prenom[50];

    printf ("Tapez votre nom et prénom\n");
    scanf ("%s %s\n", nom, prenom);

    printf ("Bonjour %s %s!\n", nom, prenom);
    strcat(nom, prenom);
    lg=strlen (nom);

    une seconde entrée après le scanf est nécessaire pour continuer, et je ne comprends pas pourquoi!?! Où ai-je fais une erreur?

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

    Déjà :
    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
    08-11-26-1.c:5: error: parse error before string constant
    08-11-26-1.c:5: warning: type defaults to `int' in declaration of `printf'
    08-11-26-1.c:5: warning: conflicting types for built-in function 'printf'
    08-11-26-1.c:5: warning: data definition has no type or storage class
    08-11-26-1.c:6: error: parse error before string constant
    08-11-26-1.c:6: warning: type defaults to `int' in declaration of `scanf'
    08-11-26-1.c:6: warning: conflicting types for built-in function 'scanf'
    08-11-26-1.c:6: warning: data definition has no type or storage class
    08-11-26-1.c:8: error: parse error before string constant
    08-11-26-1.c:8: warning: type defaults to `int' in declaration of `printf'
    08-11-26-1.c:8: warning: data definition has no type or storage class
    08-11-26-1.c:9: warning: type defaults to `int' in declaration of `strcat'
    08-11-26-1.c:9: warning: parameter names (without types) in function declaration
     
    08-11-26-1.c:9: warning: conflicting types for built-in function 'strcat'
    08-11-26-1.c:9: warning: data definition has no type or storage class
    08-11-26-1.c:10: warning: type defaults to `int' in declaration of `lg'
    08-11-26-1.c:10: warning: implicit declaration of function `strlen'
    08-11-26-1.c:10: error: initializer element is not constant
    08-11-26-1.c:10: warning: data definition has no type or storage class
    une seconde entrée après le scanf est nécessaire pour continuer, et je ne comprends pas pourquoi!?! Où ai-je fais une erreur?
    Bah c'est explicitement demandé dans le format du scanf : "%s %s\n" : si on a pas l'utilité du \n, on ne le met pas.

    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
    #include <stdio.h>
    #include <string.h>
     
     
    int main(void)
    {
        int lg;
        char nom[50];
        char prenom[50];
        printf("Tapez votre nom et prénom\n");
        scanf("%s %s", nom, prenom);
     
        printf("Bonjour %s %s!\n", nom, prenom);
        strcat(nom, prenom);
        lg = strlen(nom);
        return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >./a.exe
    Tapez votre nom et prénom
    aze rty
    Bonjour aze rty!

  3. #3
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    Bonjour,

    chez moi j ai beau appuyer 65536 fois le bouton ca fait rien de plus.
    Par contre ce bout de code marche mieux

    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main( void )
    {
        int lg;
        char nom[50];
        char prenom[50];
     
        printf ("Tapez votre nom et prénom\n");
        /* j ai enleve le '\n' de fin */
        scanf ("%s %s", nom, prenom);
     
        /* on mange le buffer de l entree standard jusqu a la fin */
        while( getchar() != '\n' )
        {
        }
     
        printf ("Bonjour %s %s!\n", nom, prenom);
        strcat(nom, prenom);
        lg=strlen (nom);
     
        return EXIT_SUCCESS;
    }
    Pour plus d info je t invite a regarder le man de scanf pour le '\n' final.
    Pour le while( getchar() ), une recherche sur le forum avec les mots clefs "fclean et fpurge" (le sujet revient souvent et une ou deux discutions entre Emmanuel Delahaye, nicolas.sitbon, medinoc et souviron sont assez interessantes)

    P.S. la prochaine si tu pouvais poster un code qui compile, avec le main, toussa...

    bon courage

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Par défaut
    Déjà désolé pour le code sans bibliothèque ni "main"

    le "\n" au temps pour moi, merci mabu!

    BainE merci pour le conseil j'y penserai quand j'aurais un peu plus de temps pour moi.

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

Discussions similaires

  1. Problèmes scanf
    Par barbug dans le forum Débuter
    Réponses: 12
    Dernier message: 13/12/2010, 22h39
  2. Débutant - Problème scanf
    Par Invité dans le forum Débuter
    Réponses: 2
    Dernier message: 08/01/2008, 00h30
  3. Problèmes "scanf", critiques et conseils.
    Par FOX19881 dans le forum C
    Réponses: 4
    Dernier message: 23/07/2006, 22h17
  4. problème avec scanf
    Par troumad dans le forum C
    Réponses: 30
    Dernier message: 20/11/2005, 15h21
  5. un problème tout bête de scanf !
    Par eizo dans le forum C
    Réponses: 9
    Dernier message: 31/10/2005, 12h29

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