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 :

[fprintf] ecriture en double


Sujet :

C

  1. #1
    Membre régulier Avatar de Flaherty Mc Coillean
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 75
    Points
    75
    Par défaut [fprintf] ecriture en double
    Bonjour à tous,

    J'ai un petit soucis, j'essaye d'écrire une ligne de texte dans un fichier, mais étrangement la ligne est écrite deux fois de suites...

    Voici mon bout de code qui se rapporte à mon pb :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    unsigned short Rvolc, Rmoy;
    char *datheur, *dirou, *zone, *osrb, fic_txt[200];
    int an, mois;
    FILE *fictxt;
     
    ...
    ...
     
    if (osrb != NULL)
    if (index(osrb,'T'))
    {
      sprintf(fic_txt,"%s/%4d%02d_NTI_%s.txt%c",dirou,an,mois,zone,0);
     
      //fichier archive
      fictxt=fopen(fic_txt, "a");
      if (fictxt != NULL)
      {
        fprintf(fictxt,"%s %2.2f %2.2f\n",datheur, (Rvolc/100.), (Rmoy/100.));
      }
      fclose(fictxt);
      fictxt = NULL;
    }
    Quelqu'un peut il m'expliquer d'où sort cette écriture en doublon ?
    Merci d'avance !

    Flaherty Mc Coillean
    C'est moi où il fait chaud là ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Tu n'aurais pas un doublon de cette partie de code ailleurs ? Car je ne vois pas ce qui cloche...

    Par contre --rien à voir-- mais ce qui est en rouge ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(fic_txt,"%s/%4d%02d_NTI_%s.txt%c",dirou,an,mois,zone,0);
    est inutile : la fonction termine elle-même le buffer avec un '\0'.

  3. #3
    Membre éclairé
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Points : 742
    Points
    742
    Par défaut
    Bonjour,

    N'aurais-tu pas lancer ton programme 2 fois de suite ? Ton fichier est ouvert en mode append ("a"). Donc si tu relances ton programme N fois, tu auras N fois la ligne. Si la chaîne "datheur" contient les secondes, peut-être verras tu un changement.
    Si tu veux seulement une ligne dans ton fichier après exécution, il faut essayer le mode "w+".

    Pour les modes voir le man fopen.

    [edit]
    Je viens de voir les déclarations de tes chaînes. Est-ce que tu alloues les tailles suffisantes pour pour y placer tes chaînes et est-ce que le 0 final est bien mis ? A vérifier
    - Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
    - Travailler dur n'a jamais tué personne, mais pourquoi prendre le risque (Edgar Bergen)

Discussions similaires

  1. [Débutant] Ecriture d'un nom de fichier avec double incrémentation
    Par MTN84 dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/02/2010, 09h52
  2. Les doubles quotes dans les fprintf
    Par Changedman dans le forum C
    Réponses: 30
    Dernier message: 22/02/2007, 12h07
  3. Problème ecriture grub.conf pr double boot
    Par peppena dans le forum Administration système
    Réponses: 1
    Dernier message: 02/12/2005, 13h44
  4. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 20h22
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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