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 :

Fonction pour ouvrir un fichier


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 45
    Points : 20
    Points
    20
    Par défaut Fonction pour ouvrir un fichier
    Bonsoir,

    Je viens à vous car j'ai une petit problème en faisant une fonction qui ouvre un fichier. quand je la mets dans le main() ça marche, mais une fois dans une fonction à part dans un autre .c, je reçois une erreur disant :
    "error: 'FILE' undeclared (first use in this function)"

    voici mon code:

    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 open(char fich)
    {
     
      FILE* fichier = NULL;
     
      fichier = fopen(fich, "r");
     
      if (fichier == NULL)
        {
          printf("Impossible d'ouvrir le fichier test.txt");
        }
     
      return 0
    }
    merci à vous tous.

  2. #2
    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
    C'est parce que tu n'as pas inclus le fichier <stdio.h>, qui contient la déclaration du type FILE.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Merci à toi mon ami. c'était ça la solution sauf que maintenant dès que je compile ça me fait "sudoku.exe a cessé de fonctionner".

    Voici mon main()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <stdio.h>
    #include <stdlib.h>
    #include "type.h"
     
    int main()
    {
      open("facile3.txt");
      return 0;
    }
    Merci

  4. #4
    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
    Le prototype de open doit être open(const char *) et non open(char). char, c'est juste un caractère.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    J'ai réussis à faire la fonction qui lit une matrice d'entiers, mai je n'arrive pas à faire une fonction qui prend une chaine de caractère (le nom du fichier) et qui lit le fichier qui contient une grille.

    voici la 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
    20
    void Lire_Grille(int **G)
    {
           FILE *f;
          int i,j;
     
         f=fopen("grille.txt","r");
         if(f!=NULL)
         {
                    fscanf(f,"%d",G);
                    for(i=0;i<9;i++)
                     for(j=0;i<9;i++)
                         fscanf(f,"%d",&G[i][j]);
         }        
         else
         {
             printf("erreur d ouverture \n");
             system("pause");
             exit(0);
             }
    }
    Merci,

    Cordialement.

  6. #6
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    J'ai réussis à faire la fonction qui lit une matrice d'entiers, mai je n'arrive pas à faire une fonction qui prend une chaine de caractère (le nom du fichier) et qui lit le fichier qui contient une grille.
    Il suffit de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void Lire_Grille(char const * fichier,int **G)
    {
           FILE *f;
          int i,j;
     
         f=fopen(fichier,"r");
    ....
    Lire_Grille("grille.txt",....);
    A noter que la fonction proposée est fausse ici :
    Dans cette expression, G devrait être un type "adresse de int" soit int* alors que G est du type int**, soit "adresse d'un pointeur sur int".
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/02/2010, 16h09
  2. fonction pour ouvrir des fichiers
    Par ashley dans le forum C
    Réponses: 8
    Dernier message: 26/08/2009, 16h55
  3. Quelle fonction pour "ouvrir" un fichier ?
    Par Pierre.g dans le forum Windows
    Réponses: 2
    Dernier message: 07/05/2007, 00h02
  4. fonction pour lire les fichier audio
    Par tarek007 dans le forum Multimédia
    Réponses: 1
    Dernier message: 11/05/2005, 16h28
  5. Détourner une fonction pour copier un fichier en mémoire
    Par Rodrigue dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/11/2003, 08h29

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