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 :

Besoin d'aide avec scanf


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut Besoin d'aide avec scanf
    Bonjour,

    Je n'arrive pas a comprend ce que fais ce bout de code du coup je suis bloqué sur un de mes programmes étant donné qu'il s'agit d'un code que j'ai recupéré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    scanf("\"%[^\"]\",\"%[^\"]\",\"%s\n", pid, url, url2) > 0
    Merci de votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    La fonction scanf est une fonction C qui sert à récupérer la saisie clavier.

    La suite de caractères dans la fonction représente le formatage que doit respecter l'utilisateur, mais je ne suis pas capable de l'analyser ; je trouve que ça ressemble beaucoup aux expression régulière, mais je ne les connais pas.

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je dis peut-être une bêtise, mais je pense que cet appel à scanf() demande trois chaînes entre guillemets, séparées par des virgules.
    Par contre, il est possible que le dernier guillemet de la dernière chaîne soit incorporé à celle-ci...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    scanf("\"%[^\"]\",\"%[^\"]\",\"%s\n", pid, url, url2) > 0
    Le format nous dit que la chaîne analysée :
    \" : doit commencer par "
    %[^\"] : lire tous les caractères jusqu'à trouver un ". Les mettre dans le tableau pid (sauf le " trouvé)
    \",\" : est suivi de "(trouvé au dessus), puis d'une virgule puis de "
    %[^\"] : lire tous les caractères suivants jusqu'à trouver un " . Les mettre dans le tableau url (sauf le " trouvé)
    \",\" : est suivi de "(trouvé au dessus), puis d'une virgule puis de "
    %s\n : puis d'une chaîne mise dans url2...
    Par exemple, cette entrée :
    "a z e rty","qsdf","1234" cequonveut
    donnera :
    pid <- a z e rty
    url <- qsdf
    url2 <-1234"
    Il est bizarre que le " terminant la dernière chaîne (si il existe) soit mis dans la chaîne url2 (à cause du format %s).

    La condition >0 indique que au moins pid a été correctement lu.

    PS : Il est toujours dangereux d'utiliser un code qu'on ne comprend pas.

Discussions similaires

  1. Besoin d'aide avec Regexp::Assemble
    Par mobscene dans le forum Modules
    Réponses: 5
    Dernier message: 11/04/2007, 12h39
  2. [ASA] J'ai besoin d'aide avec sybase et vb6 svp !!
    Par tibo830 dans le forum SQL Anywhere
    Réponses: 7
    Dernier message: 12/05/2006, 10h09
  3. Besoin d'aide avec TinyXML
    Par Clad3 dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 15/08/2005, 18h20
  4. Réponses: 2
    Dernier message: 29/08/2003, 17h52
  5. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29

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