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 :

Problème avec la lecture et ecriture dans un fichier [Débutant(e)]


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Problème avec la lecture et ecriture dans un fichier
    Salut.
    J'ai un probleme je n'arrive pas a compiler mon programme et je ne comprend pas pourquoi, il semble y avoir un probleme avec les argument de mes fonctions.
    Merci de m'expliquer.

    voici mon main:
    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
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include"mes_fonctions.h"
     
    FILE*fasta;
     
    main(int argc, char **argv[]) {
     
      fasta = fopen(argv[3],"r");
     
     
       if (fasta==NULL)
      {
        printf("impossible d'ouvrir le fichier %s !\n",argv[3]);
        exit (0);
     
      }
     
     
       fichier_sortie(argv,fasta); 
     
    }
    ma fonction:
    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
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    void fichier_sortie(char *argv[],fasta) {
     
      FILE *sortie;
      char a;
     
      sortie = fopen ("argv[3].shf","w");
     
     
     while ((a=fgetc(fasta))!='\n')
       {
         fprintf(sortie,"%c",a);
       }
     fclose(sortie);
     
    }
    et mon .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void fichier_sortie(char*argv[],fasta);

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include"mes_fonctions.h"
     
    FILE*fasta;
     
    main(int argc, char **argv[]) {
     
      ....
     
    }

    main renvoi toujours quelque chose et attention ce n'est pas char **argv[] le second paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main(int argc,char*argv[]) {
      return 0;
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void fichier_sortie(char*argv[],fasta);
    Il manque le typage de fasta.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void fichier_sortie(char*argv[],FILE * fasta);
    C'est redondant de passer le paramètre car tu l'as en global.Le mieux est que tu retires ta variable globale et la mette en local à main.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  3. #3
    Membre expérimenté Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Points : 1 312
    Points
    1 312
    Par défaut
    Remarque :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main(int argc, char *argv[])
    // équivaut à
    int main(int argc, char **argv)

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par makechaos
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /* [...] */
     
       if (fasta==NULL)
      {
        printf("impossible d'ouvrir le fichier %s !\n",argv[3]);
        exit (0);
     
      }
     
    /* [...] */
    [...]
    Remarque 1 : quand on quitte à cause d'une erreur, il vaut mieux renvoyer une valeur appropriée. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /* [...] */
     
        if ( NULL == fasta ) {
            fprintf( stderr, "impossible d'ouvrir le fichier %s !\n", argv[3] );
            exit( EXIT_FAILURE ); /* <== on retourne une valeur qui indique qu'il y a eu un problème */
        }
     
    /* [...] */
    Remarque 2 : tester l'existence d'un argument avant de l'utiliser (argc est là pour ça).
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    ok merci a tous je vais essayer tout sa

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

Discussions similaires

  1. Lecture et Ecriture dans un fichier Excel
    Par qiqi1111 dans le forum C++
    Réponses: 2
    Dernier message: 18/12/2008, 19h10
  2. lecture puis ecriture dans un fichier
    Par charlix dans le forum C
    Réponses: 22
    Dernier message: 15/11/2007, 11h31
  3. lecture et ecriture dans un fichier PDF
    Par kha_yassine dans le forum Documents
    Réponses: 1
    Dernier message: 05/07/2007, 19h36
  4. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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