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

Caml Discussion :

[Débutant(e)] Comment utiliser Scanf.sscanf


Sujet :

Caml

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 32
    Par défaut [Débutant(e)] Comment utiliser Scanf.sscanf
    Je recois des chaines de caractères du style "-14-", "-45-", etc...

    Je voudrais récupérer l'entier entre tiret. Je me dis qu'un bête 'let valeur = Scanf.sscanf string "-%i-" in' va faire l'affaire avec 'string' une chaîne comme ci-dessus, sauf que quand j'enchaîne avec un 'Format.printf "%i" valeur', je me prend un "This expression has type (int -> 'a) -> 'a but is here used with type int"

    Scanf.sscanf n'est pas censé me retourner un entier ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Par défaut
    Non : il faut que tu lui donnes une fonction qui prend autant de paramètre que ce que tu lis, et il va l'effectuer sur l'entrée.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Scanf.scanf "%d" (fun n -> Printf.printf "j'ai lu %d !\n" n);;
    Scanf.scanf "%d" (Printf.printf "j'ai lu %d !\n")
    let somme_carres = Scanf.scanf " %d %d" (fun x y -> x * x + y * y);;
    Dans ton cas tu veux "renvoyer la valeur", donc il faut mettre "(fun n -> n)" (à la lecture de l'entier, il va appliquer cette fonction, donc renvoyer l'entier). Tu pourrais aussi faire ton traitement directement dans cette fonction, si cela s'y prête.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 32
    Par défaut
    Impec ! merci !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/05/2007, 12h47
  2. Réponses: 1
    Dernier message: 09/05/2007, 12h20
  3. comment utiliser scanf proprement
    Par Eusebius dans le forum C
    Réponses: 8
    Dernier message: 20/09/2006, 10h09
  4. [débutant] Comment utiliser vector.
    Par miagistevn dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 17/05/2006, 12h58
  5. [débutant][JSci][Matrix]comment utiliser cette classe
    Par Clark dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 10/05/2005, 10h40

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