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 :

Lecture sur stdin


Sujet :

C

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Points : 53
    Points
    53
    Par défaut Lecture sur stdin
    Bonjour tout le monde.

    Voilà je suis tout jeune débutant en langage C et j'essaie de faire divers exercices que je trouve sur le net.

    Et il en est un que je ne comprend pas.

    On y demande de réaliser une fonction qui renvoie le maximum d'une liste d'entier positif entrée sur stdin et terminé par 0.

    Je ne comprend pas comment lire sur stdin afin de faire des comparaisons pour trouver le maximum.

    Merci d'avance.

    Amicalement Boobs60

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    Bonjour,

    D'abord, tu utilises fgets() sur stdin pour lire une ligne. Tu stockes cette ligne dans un buffer déclaré au préalable (toujours le même buffer pour chaque ligne).

    Ensuite, tu convertis le nombre, écrit en caractères dans ta chaîne, en un entier numérique long int avec strtol(). Tu stockes cet entier dans un tableau de long int lui aussi déclaré au préalable.

    Enfin, tu travailles sur les éléments de ton tableau, en les comparant directement avec les opérateurs « < », « > » et « = ».

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Points : 53
    Points
    53
    Par défaut
    ok donc il faut quand même que j'utilise un tableau je pensais qu'on en avais pas besoin, que je pouvais lire les nombre un par un comme dans un tableau directement dans stdin.

    En ce qui concerne la ligne, lorsque je vais entrer mes entiers, cela va me créer une seul ligne ou bien une ligne pour chaque entiers ?
    Car si il n'y a qu'un seul ligne je devrais alors la découper de façons à retrouver tout mes entiers et de pouvoir les comparer.

    Merci.

    Amicalement Boobs60

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    Mea culpa, j'ai lu trop vite. J'ai cru qu'il s'agissait de trier des entiers. S'il s'agit de retourner le maximum, tu peux effectivement n'utiliser qu'une seule variable, que tu mets à jour si le nombre que tu lis est plus grand que celui qu'elle contient.

    Tu peux également passer plusieurs nombres sur la même ligne si c'est ainsi que tu veux procéder. Le second argument de strtol() sert à indiquer à quelle position de la chaîne on en est. Tu peux aussi utiliser directement scanf(), ce qui est probablement ce à quoi s'attend l'auteur de l'exercice.

Discussions similaires

  1. lecture sur stdin
    Par yann_p dans le forum Bibliothèque standard
    Réponses: 1
    Dernier message: 08/05/2009, 23h42
  2. Lecture sur stdin
    Par gormux dans le forum Général Python
    Réponses: 1
    Dernier message: 19/11/2007, 17h52
  3. Erreur de lecture sur BD Access avec delphi
    Par e120650 dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/06/2005, 10h17
  4. [C#] lecture sur port série
    Par Iokanaan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/05/2005, 13h50
  5. [Kylix] Lecture sur le port série en C++
    Par MD Software dans le forum EDI
    Réponses: 1
    Dernier message: 08/05/2004, 12h52

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