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

Windows Discussion :

insérer et extraire un tag entier dans un fichier


Sujet :

Windows

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 411
    Points : 192
    Points
    192
    Par défaut insérer et extraire un tag entier dans un fichier
    Bonjour,

    je souhaite mettre un tag de type int dans un fichier texte.

    ex : 123bonjour...

    pour cela j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(buffer, "%d", entier)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(fichier, buffer)
    pour l'écrire dans le fichier.

    j'ai constaté de sprintf() met en fait un chiffre par octet.
    comment faire pour extraire juste le int de départ et pas le reste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fgets(buf, sizeof(int), fichier)
    ne fonctionne pas...normal puisqu'il y a 1 chiffre par octet.

    donc comment faire pour extraire le int, ne connaissant pas sa taille au préalable ???

    merci

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Pour celui-là en l'occurrence, je conseillerais un fscanf("%d", &entier).
    Et ne pas oublier de vérifier la valeur retournée par fscanf()...
    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.

  3. #3
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par youp_db
    j'ai constaté de sprintf() met en fait un chiffre par octet.
    comment faire pour extraire juste le int de départ et pas le reste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets(buf, sizeof(int), fichier)
    ne fonctionne pas ... normal puisqu'il y a 1 chiffre par octet.
    fgets lit une ligne dans un fichier donc je suppose que buf est un tableau de char. Ensuite c'est pas sizeof(int) qu'il faut passer à fgets mais la taille de ton buffer (fgets en a besoin pour éviter le débordement de tampon, il ne faut donc surtout pas passer n'importe quoi). Lorsque tu auras lu la ligne, tu peux extraire la partie nombre avec sscanf qui se comporte comme scanf mais scane une chaîne au lieu d'une ligne sur l'entrée standard. Et pour faire ça plus simple, tu aurais seulement du utiliser directement fscanf. Ton problème est un problème de langage C, pas de programmation sous Windows.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 411
    Points : 192
    Points
    192
    Par défaut
    ok merci pour vos réponses.

    en fait ca marche quand on utilise fread() et fwrite(), donc quand on lit et inscrit les données en mode binaire.

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

Discussions similaires

  1. Extraire les images contenues dans un fichier word
    Par elreybubu dans le forum Delphi
    Réponses: 2
    Dernier message: 25/10/2006, 13h07
  2. écrire des entiers dans un fichier
    Par seb__ dans le forum C
    Réponses: 3
    Dernier message: 15/10/2006, 18h32
  3. Réponses: 7
    Dernier message: 21/02/2006, 17h43
  4. récupérer un entier dans le fichier ".rc"
    Par luffy0013 dans le forum MFC
    Réponses: 2
    Dernier message: 15/02/2005, 12h44
  5. Réponses: 3
    Dernier message: 29/12/2004, 17h10

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