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 :

PB de lecture dans un fichier


Sujet :

C

  1. #1
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut PB de lecture dans un fichier
    Volà je suis pas très habituée à coder en C. Résultat je bute sur des notions de base
    Dans un fichier, j'ai un nombre (ex: 60754). Mon programme en C est sencé récupérer cette valeur. Mais voilà il ne m'affiche pas la bonne: 188356 (au lieu de 60754). La manière que j'ai utilisé est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       int serverPort;
       FILE *fb;
       fb = fopen("/opt/qip/etc/.authServerPort","r");
     
       if (fb == NULL) {
          /* The file does not exist */
          return QIPAUTHCALLOUT_FAIL;
       } else {
          /* read the UDP port */
          fscanf(fb,"%d",serverPort);
          fprintf(fp , "UDP server port: %d\n", serverPort);
          fclose(fb);
       }
    Je vois pas pourquoi ça marche pas

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut Re: PB de lecture dans un fichier
    Citation Envoyé par be_tnt
    Volà je suis pas très habituée à coder en C. Résultat je bute sur des notions de base
    Dans un fichier, j'ai un nombre (ex: 60754). Mon programme en C est sencé récupérer cette valeur. Mais voilà il ne m'affiche pas la bonne: 188356 (au lieu de 60754). La manière que j'ai utilisé est la suivante:

    int serverPort;
    FILE *fb;
    fb = fopen("/opt/qip/etc/.authServerPort","r");

    if (fb == NULL) {
    /* The file does not exist */
    return QIPAUTHCALLOUT_FAIL;
    } else {
    /* read the UDP port */
    fscanf(fb,"%d",serverPort);
    fprintf(fp , "UDP server port: %d\n", serverPort);
    fclose(fb);
    }

    Je vois pas pourquoi ça marche pas


    Ca m'etonne que ca ne plante pas (segfault)
    Essaye avec ca.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fscanf(fb,"%d",&serverPort);
    Sinon essaye avec fgets puis strtol (ou sscanf ), c'est mieux conseillé que fscanf
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    Et je laisse:
    ??

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par be_tnt
    Et je laisse:
    ??
    Oui oui (regarde mon premier post je l'ai edité
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  5. #5
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut Re: PB de lecture dans un fichier
    Citation Envoyé par Skyrunner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fscanf(fb,"%d",&serverPort);
    Sinon essaye avec fgets puis strtol (ou sscanf ), c'est mieux conseillé que fscanf
    ça marche déjà beaucoup mieux en ajoutant &.

  6. #6
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    pkoi fscanf n'est pas conseillé?

  7. #7
    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 be_tnt
    pkoi fscanf n'est pas conseillé?
    Il peut y avoir des problèmes de débordement avec les champs "%s"...

    On préfère faire une chose à la fois, mais la faire bien.

    - Lire une ligne : fgets()
    - Extraire / convertir les données : analyse ou sscanf() ou strtol()...

    On maitrise mieux la situation.

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    Avec fgets et strtol:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       if (fb == NULL) {
          /* The file does not exist */
          return QIPAUTHCALLOUT_FAIL;
       } else {
          /* read the UDP port */
          fgets(ligne,sizeof ligne,fb);
          serverPort = strtol(temp,NULL,10);
          fprintf(fp , "UDP server port: %d\n", serverPort);
          fclose(fb);
       }
    Merci!!!

  9. #9
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Oubli pas de tester le retour de fgets.

    Il renvoi NULL si il n'a pas reussi à lire...
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  10. #10
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Skyrunner
    Oubli pas de tester le retour de fgets.

    Il renvoi NULL si il n'a pas reussi à lire...
    oki c'est ajouté. Merci!

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

Discussions similaires

  1. macros word et lecture dans un fichier excel
    Par antrax2013 dans le forum Windows
    Réponses: 2
    Dernier message: 01/10/2005, 19h05
  2. Réponses: 20
    Dernier message: 25/09/2005, 15h07
  3. Lecture dans un fichier
    Par unknown4 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 14/08/2005, 17h56
  4. [Débutant] Lecture dans un fichier texte
    Par babemagus dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/07/2005, 12h17
  5. Réponses: 12
    Dernier message: 14/06/2004, 13h06

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