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 :

Probleme avec la fonction fopen


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut Probleme avec la fonction fopen
    slt,
    J'espère que quelqu'un pourra m'aider.
    Voici donc mon problème,j'utilise codeblock et je n'arrive pas à ouvrir des fichiers avec fopen et cie. La compilation ne provoque pas d'erreur. 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define TAILLE_MAX 10
     
    int main(int argc, char *argv[])
    {
       FILE* premier=NULL;
       FILE* deuxieme=NULL;
     
       char chaine[TAILLE_MAX] = "";
     
       premier=fopen("test","rb");
       deuxieme=fopen("text1.txt","w");
       if (premier != NULL && deuxieme!= NULL)
       {
          while (fgets(chaine, TAILLE_MAX, premier) != NULL) 
          {
             printf("%s", chaine);// On affiche la chaîne qu'on vient de lire
             fprintf(deuxieme,"%s",chaine);// on copie ds le 2nd fichier le contenu en binaire du 1er
     
          }
          fclose(deuxieme);
          fclose(premier);
       }
       else
       {
          printf("erreur d'ouverture des fichiers");
       }
     
     
       return 0;
    }
    la console m'affiche le message d'erreur("erreur d'ouverture des fichiers") or les fichiers test et tex1 existent bien et je les ai mis dans mon projet avec le main.c
    ce que je veux faire c'est ouvrir test et copier son contenu binaire dans text1!!!

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Probablement que le répertoire d'exécution de ton programme n'est pas le même que celui où se trouve les fichiers. As-tu vérifié ce point ?

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Ce programme fonctionne bien chez moi, il est exécuté dans le répertoire qui contient le fichier à copier.

    A noter :
    • system("pause"); n'est pas portable, à éviter donc.
    • system("pause"); est placé après return 0; ne sera donc pas exécuté.
    • le premier fichier est ouvert en mode binaire, le second en mode texte. Il y a incohérence.

    EDIT :
    ce que je veux faire c'est ouvrir test et copier son contenu binaire dans text1!!!
    Dans ce cas, il faut ouvrir les deux fichiers en mode binaire et ne pas utiliser fgets, mais une fonction de lecture par bloc comme fread.
    Dernière modification par Invité(e) ; 22/12/2008 à 13h41.

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Citation Envoyé par mabu Voir le message
    Dans ce cas, il faut ouvrir les deux fichiers en mode binaire et ne pas utiliser fgets, mais une fonction de lecture par bloc comme fread.
    Je ne sais pas comment utiliser fread.est ce que tu pourrais m'expliquer?
    comment je dois l'utiliser dans mon cas?
    merci d'avance.

    Citation Envoyé par 3DArchi Voir le message
    Probablement que le répertoire d'exécution de ton programme n'est pas le même que celui où se trouve les fichiers. As-tu vérifié ce point ?
    Qu'est ce que tu appelles répertoire d'exécution de mon programme ?C'est
    le dossier ou se trouve mon projet cad la ou il y a les dossiers "obj","bin" et "
    Debug"? ou alors c'est dans le dossier bin

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par bigkentheone Voir le message
    g ne sais pas cmt utiliser fread.est ce que tu pourrais m'expliquer?
    cmt g dois l'utiliser ds mon cas?
    merci d'avance.


    Réponse dans la FAQ : http://c.developpez.com/faq/?page=fi...ICHIERS_copier


  6. #6
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Réponse dans la FAQ : http://c.developpez.com/faq/?page=fi...ICHIERS_copier


    Désolé, il y rien qui m'aide dans ton lien. j'avais deja fais la verification d'ouverture des fichiers et l'ouverture echoue. mais je ne comprends pas pourquoi vu que mes fichiers sont aux bons emplacements!!!peut etre un problème de configuration?
    Après plusieurs test j'ai remarqué que c'est premier qui ne s'ouvre pas mais deuxieme s'ouvre sans probleme.Meme si je met un chemin absolu pour premier ca ne change rien il ne s'ouvre toujours pas!!

    je viens de voir un truc le 1er fopen ne fonctionne pas.Meme si je remplace le "rb" par "ryhfdjhfjdqshfdjshfjdhfd" le compilateur ne provoque aucune erreur.
    En fait c'est le "r" qui ne marche pas. Si par exemple je le remplace par "wb" ou "w" des fichiers test et text sont crées dans le dossier ou il y avait deja mes fichiers text originaux.Donc je me retouve avec plusieurs fichiers test et text1.
    je sais plus quoi faire parce que la c'est le mot clé "r" qui ne marche pas

Discussions similaires

  1. [PHP 5.2] Probleme avec les fonctions fopen fwrite
    Par zeyro dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2009, 15h34
  2. Probleme avec la fonction rename()
    Par TheZenZen dans le forum C
    Réponses: 6
    Dernier message: 08/10/2005, 15h59
  3. [LG] Problème avec la Fonction ReadLn en fin de programme
    Par killermano dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2005, 15h16
  4. [LG]Probleme avec une fonction
    Par xavier1936 dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2005, 22h48

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