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 :

recuperation de chaine de caracteres dans un fichier


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 117
    Points : 113
    Points
    113
    Par défaut recuperation de chaine de caracteres dans un fichier
    bonjour,

    j'ai ecrit une petite fonction qui permet de lire un fichier texte écrit au format suivant :
    chaine_de_caractères valeur_entière

    voici la fonction en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int GetIntValue(FILE *fic, const char *par)
    {
        //extraction d'une valeur (entier) dans un fichier formatte
        unsigned int t=strlen(par);
        int val=0;
        char ligne[4096],str[4096];
        while (fgets(ligne,4096,fic)!=NULL)
        {
            sscanf(ligne,"%s%d",&str,&val);
            if (strlen(str)==t)
            if (strncmp(par,str,t)==0) return val;
        }
        return (0);
    }

    la fonction ... fonctionne mais au moment de la compilation, elle me retourne un warning pour le sscanf dont j'aimerais bien me débarasser :

    warning: char format, different type arg (arg 3)


    merci d'avance!

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Avec %s, on attend un char *, mais &str n'a pas ce type. Tu voulais surement ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sscanf(ligne,"%s%d", str, &val);

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 117
    Points : 113
    Points
    113
    Par défaut
    merci beaucoup de ton aide, cela marche parfaitement maintenant.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut
    et avec un fscanf ?

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par MortDansLAme Voir le message
    et avec un fscanf ?
    C'est pas trop conseillé à moins d'être absolument sûr du format des données lues.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Remplacer une chaîne de caractères dans un fichier .hex
    Par subsix dans le forum Assembleur
    Réponses: 8
    Dernier message: 23/11/2006, 21h06
  2. Réponses: 10
    Dernier message: 16/06/2006, 13h53
  3. Réponses: 2
    Dernier message: 04/06/2006, 18h19
  4. Réponses: 10
    Dernier message: 22/05/2006, 11h45

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