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 :

question sur le scanf


Sujet :

C

  1. #1
    Membre éclairé Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Par défaut question sur le scanf
    Voilà,

    je dois faire un programme dans lequel je dois tester les valeurs saisies par le scanf.

    quelqu'un pourrait-il me dire quelle valeur retourne le scanf lorsque:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int ver,test;
     
     
    ver=scanf("%d",&test);
    Si jamais je rentre un caractère dans le scanf à la saisie, quel code est ce qu'il me retourne? EOF ou autre chose?

    Merci de me répondre au plus vite.

    Richard_sraing

  2. #2
    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 Re: question sur le sanf
    Citation Envoyé par richard_sraing
    je dois faire un programme dans lequel je dois tester les valeurs saisies par le scanf.
    Drôle d'idée...

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

    quelqu'un pourrait-il me dire quelle valeur retourne le scanf lorsque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int ver,test;
     
    ver=scanf("%d",&test);
    Si jamais je rentre un caractère dans le scanf à la saisie, quel code est ce qu'il me retourne? EOF ou autre chose?
    Comme l'indique ton livre de C, scanf() retourne le nombre de conversions réussies ou EOF en cas de fin de lecture. Dans ton cas, je dirais 0.

    Je déconseille formellement l'usage de scanf(). Trop de pièges.

  3. #3
    Membre éclairé Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Par défaut
    merci pour le petit conseille mais le prof olige de le faire par scanf

    j'ai trouver comment faire y a un ptit truc qui change de ton explication...

    merci quand même

    richard_sraing

  4. #4
    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 richard_sraing
    merci pour le petit conseille mais le prof olige de le faire par scanf
    Mauvais prof, changer de prof...

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par défaut
    Malheureusement j'ai moi aussi appris le C par le biais des cours (à la fac personnellement)...
    oui je sais c'est pas la meilleure méthde, j'ai approfondi tout seul !
    Les profs incitent toujours en tout cas au début de la programmation à utiliser scanf.
    D'ailleurs ils parlent pas dautres procédures ou fontions...
    Ils le font du moins je pense lorsqu'ils jugent que les étudiants ont assez de connaissances pour utiliser autre chose... ce qui n'est pas du tout logique mais bon...

  6. #6
    Membre chevronné Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Par défaut
    Par ailleurs l'utilisation de scanf apparait dans beaucoup de livres et de tutoriels, dans les premiers progs a realiser (juste apres le "Hello World").

    C'est moche...

    En plus, aller lire les normes et les recommandations n'est pas une priorite quand on decouvre un jouet merveilleux comme le C. Donc c'est facile de prendre des mauvaises habitudes.

    J'avais trouve un tuto genial ou on n'avait pas le droit d'utiliser autre chose que read et write avant un bon moment. Et meme apres on n'avait le droit qu'a malloc, free, et aux appels systeme.

    Toutes les fonctions etaient d'abord codees par l'utilisateur.

    my_printf, my_strncmp, und so weiter. Tres instructif d'ailleurs.

    Faut que je le retrouve !

    (Sinon je le reecrirais des que j'aurais le temps )

  7. #7
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par richard_sraing
    merci pour le petit conseille mais le prof olige de le faire par scanf
    Mauvais prof, changer de prof...
    En meme temps il leur demande de faire un programme pour verifier les valeurs saisies par scanf donc il sont obligé d'utiliser scanf, de plus c'est p-e une approche du prof pour leur montrer que scanf est difficile a utiliser...

  8. #8
    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 Jack_serious
    J'avais trouve un tuto genial ou on n'avait pas le droit d'utiliser autre chose que read et write avant un bon moment.
    Gné ? Des fonctions systèmes ? Encore pire! A moins que tu veuilles dire fread() / fwrite(), ce qui n'est pas une mauvaise chose en soi, mais je préfèrerais qu'on utilise exclusivement fgetc() et fputc() pour construire ses propres fonctions d'entrée sorties...

    A la fin, on montrerait éventuellement l'existence des autres fonctions de bibliothèque... Je réfléchis depuis un moment à la rédaction d'un tel tutoriel...
    Et meme apres on n'avait le droit qu'a malloc, free, et aux appels systeme.

    Toutes les fonctions etaient d'abord codees par l'utilisateur.

    my_printf, my_strncmp, und so weiter. Tres instructif d'ailleurs.

    Faut que je le retrouve !
    Là, je suis d'accord.

  9. #9
    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 Skyrunner
    <...> c'est p-e une approche du prof pour leur montrer que scanf est difficile a utiliser...
    Arf! Oui, on peut toujours rêver ...

  10. #10
    Membre chevronné Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par Jack_serious
    J'avais trouve un tuto genial ou on n'avait pas le droit d'utiliser autre chose que read et write avant un bon moment.
    Gné ? Des fonctions systèmes ? Encore pire! A moins que tu veuilles dire fread() / fwrite(), ce qui n'est pas une mauvaise chose en soi, mais je préfèrerais qu'on utilise exclusivement fgetc() et fputc() pour construire ses propres fonctions d'entrée sorties...
    Oui en fait c'etait un tuto sous Unix... autant pour moi.
    Trop de dev sous Unix... Je commence a melanger fonctions standards et appels systeme.
    Mea culpa.

    Desole pour la confusion.

    C'est vrai que du coup c'est mois generaliste... Mais bon fread() et fwrite() c'est un peu tendu pour commencer....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Synopsis :
     
         size_t
         fread(void * restrict ptr, size_t size, size_t nmemb,
             FILE * restrict stream);
     
         size_t
         fwrite(const void * restrict ptr, size_t size, size_t nmemb,
             FILE * restrict stream);
    par contre fgetc() et fputc() c'est une tres bonne idee... Ca m'etait completement sorti de la tete.

    La ca devient tres bon du coup. Avec fgetc(), fputc(), malloc() et free() on refait le monde.

    info :
    En passant je suis tombe sur un sujet de proj' qui demande a l'eleve de coder une calculatrice qui gere des nombre de taille indefinis (pseudo-infinis) -> donc pas de int, juste du *int les 5 operateurs + - * / %, les parentheses et les priorites, le tout a coder avec putchar() et malloc().
    (P.S. bien sur note a la vitesse d'execution lors du passage en parametre d'une expression de 300 000 caracteres comprenant 2 multiplication et une division)

Discussions similaires

  1. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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