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
    Pas de Wi-Fi à la maison : CPL

  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 724
    Points
    5 724
    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
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  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 724
    Points
    5 724
    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)
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  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 : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    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...
    trois points de suspension

  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 &.
    Pas de Wi-Fi à la maison : CPL

  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...
    trois points de suspension

  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...
    Pas de Wi-Fi à la maison : CPL

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