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 :

scanf gros probleme


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut scanf gros probleme
    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>
     
    main(){
     
    char et[2],signe[2],critere[20];
    int nb;
     
    printf("entrez votre selection");
    scanf("%s%d%s%s",et,nb,signe,critere);
    printf("%s",et);
    printf("%d",nb);
    printf("%s",signe);
    printf("%s",critere);
    }

    voila ce scanf ne marche pas.
    Il faut entrer par exemple "&1=blanc"
    dans ce cas : - et vaut &
    - nb vaut 1
    - signe vaut =
    - critere vaut blanc
    Avec ce que j'ai fais il m'affiche n'importe quoi, je comprend pas
    merci d'avance à tous

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par widguet
    voila ce scanf ne marche pas.
    Avec ce que j'ai fais il m'affiche n'importe quoi, je comprend pas
    Si ton compilateur ne voit pas l'erreur :
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums2\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:3: warning: return type defaults to `int'
    main.c:3: warning: function declaration isn't a prototype
    main.c: In function `main':
    main.c:9: warning: format argument is not a pointer (arg 3)
    main.c:14: warning: control reaches end of non-void function
    main.c:6: warning: 'nb' might be used uninitialized in this function
    Linking console executable: C:\dev\forums2\console.exe
    Process terminated with status 0 (0 minutes, 5 seconds)
    0 errors, 5 warnings
    Change de compilateur ou apprend à le régler...

    http://emmanuel-delahaye.developpez....tm#cfg_compilo

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par widguet
    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>
     
    main(){
     
    char et[2],signe[2],critere[20];
    int nb;
     
    printf("entrez votre selection");
    scanf("%s%d%s%s",et,nb,signe,critere);
    printf("%s",et);
    printf("%d",nb);
    printf("%s",signe);
    printf("%s",critere);
    }

    voila ce scanf ne marche pas.
    Il faut entrer par exemple "&1=blanc"
    dans ce cas : - et vaut &
    - nb vaut 1
    - signe vaut =
    - critere vaut blanc
    Avec ce que j'ai fais il m'affiche n'importe quoi, je comprend pas
    merci d'avance à tous
    Il faut lire la doc des fonctions pour bien les utiliser. recherche scanf. scanf attends une adresse donc pour saisir des int il faut rajouter le & devant

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    meme si je met un & devant nb, ça ne marche tjr pas...

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par widguet
    meme si je met un & devant nb, ça ne marche tjr pas...
    Ah beh oui. Pour saisir une chaine de caractère ->fgets et la moitié de tes soucis s'en iront (façon de parler hein)

  6. #6
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%s%d%s%s",et,nb,signe,critere);
    Je connais pas scanf mais comment veux tu qu'il s'arrete de remplir "et"?
    Le pire c'est entre "signe" et "critere", jusqu'où va scanf pou remplir signe et passer à critere?

  7. #7
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par widguet
    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>
     
    main(){
     
    char et[2],signe[2],critere[20];
    int nb;
     
    printf("entrez votre selection");
    scanf("%s%d%s%s",et,nb,signe,critere);
    printf("%s",et);
    printf("%d",nb);
    printf("%s",signe);
    printf("%s",critere);
    }

    voila ce scanf ne marche pas.
    Il faut entrer par exemple "&1=blanc"
    dans ce cas : - et vaut &
    - nb vaut 1
    - signe vaut =
    - critere vaut blanc
    Avec ce que j'ai fais il m'affiche n'importe quoi, je comprend pas
    merci d'avance à tous
    quand tu fais scanf tu récupère l'adresse de tes varaibles donc il faut que tu mettes des '&' devant toutes tes variables en entrée...
    je dirais que c'est un peu normal qu'il t'affiche n'importe quoi...

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par landryx
    quand tu fais scanf tu récupère l'adresse de tes varaibles donc il faut que tu mettes des '&' devant toutes tes variables en entrée.
    Pas forcément. Si ce sont des tableaux, pas de &.

  9. #9
    Membre habitué Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Pas forcément. Si ce sont des tableaux, pas besoin de &.
    En fait j'ai toujours mis des '&'; mais merci pour la précision...

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par landryx
    En fait j'ai toujours mis des '&'; mais merci pour la précision...
    Le type n'est pas le même. Un bon compilateur bien réglé fait la différence...

Discussions similaires

  1. [D8][FK1.1] Gros Probleme avec le framewok !!!!
    Par ghor_bey dans le forum Delphi .NET
    Réponses: 7
    Dernier message: 04/08/2005, 09h08
  2. Petite aide pour gros problème : libstdc++
    Par Info-Rital dans le forum Linux
    Réponses: 5
    Dernier message: 30/08/2004, 19h17
  3. gros problemes de texturages...
    Par aguion dans le forum OpenGL
    Réponses: 5
    Dernier message: 23/06/2004, 11h02
  4. Gros problème avec JB8 et appli J2EE
    Par patbier dans le forum JBuilder
    Réponses: 10
    Dernier message: 07/03/2003, 10h52

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