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 :

copier le contenu d'un fichier texte à un autre


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par défaut copier le contenu d'un fichier texte à un autre
    bonjour :
    je suis débutante en language c et j'essaye de faire un programme qui va copier le contenu d'un fichier texte ( qui contient seulement une seule phrase) dans un autre.
    j'ai essayé de faire un programme et j'ai réussi à le compiler mais lors de l'execution ça rien me donne (pas de resultat)
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        FILE* fSrc;    
        FILE* fDest;
        char line[90];
     
        if ((fSrc = fopen("/home/ahlem/Desktop/cap1.txt", "r+")) == NULL)
        {
            return 1;
        }
     
        if ((fDest = fopen("/home/ahlem/Desktop/Capture.txt", "r+")) == NULL)
        {
            fclose(fSrc);
            return 2;
        }
     
          while(fgets(line, 90, fSrc) != NULL)
            printf("%s", line, fDest);
     
        fclose(fDest);
        fclose(fSrc);
     
        return 0;
    }
     
                                                                  17,5          Bas
    je suis sur linux (centos6) et j'utilise gcc comme compilateur.........s'il vous plait quelq'un peut m'aider et m'informer où l'erreur exactement

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par défaut
    C'est normal tu lis le fichier mais tu n'écrit pas dans l'autre fichier de destination.

    Printf est une fonction qui écrit sur la sortie standard

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par défaut
    "r+" permet d'écrir et lire sur le fichier non ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%s", line, fDest);
    tu veux me dire que printf ne convient pas dans ce code ou quoi ? je ne te comprend pas

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par défaut
    En gros printf permet d'écrire sur la sortie standard soit la console qui exécute ton programme.

    Cette fonction n'écrit pas dans un fichier, va voir du coté de fputs

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

    Citation Envoyé par jouana Voir le message
    Printf est une fonction qui écrit sur la sortie standard
    C'est fprintf ou fputs qu'il te faut utiliser.
    Prends l'habitude de consulter la documentation des fonctions que tu utilises, ainsi que regarder plus attentivement les messages du compilateur :
    main.c: In function 'main':
    main.c:22:9: warning: too many arguments for format [-Wformat-extra-args]
    Ce n'est pas tout d'arriver à compiler

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par défaut
    oui Winjerome c'est vrai mais le probleme c'est que quand je t'utilise cette méthode pour compiler
    ça me donne rien d'erreurs mais quand j'utilise ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [ahlem@localhost ~]$ gcc  -Wall  -o copie.o   -c copie.c
    copie.c: In function ‘main’:
    copie.c:21: attention : trop d'arguments pour le format

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ahlem1900 Voir le message
    ça me donne rien d'erreurs mais quand j'utilise ça

    Justement : rien d'erreur ce serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ahlem@localhost ~]$ gcc  -Wall  -o copie.o   -c copie.c
    tout court.
    Or là tu as (équivalent français du message que je t'ai montré) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    copie.c: In function ‘main’:
    copie.c:21: attention : trop d'arguments pour le format
    Ne jamais négliger aucun message, même si ce ne sont que de simples avertissements.
    Je ne peux que te conseiller de rajouter l'option -Werror à gcc pour cela

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par défaut
    j'utilise fprintf mais toujours des erreurs , je pense que le faute est à propos de la formule de l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf("%s", line, fDest);
    voici les erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    copie.c: In function ‘main’:
    copie.c:21: attention : passing argument 1 of ‘fprintf’ from incompatible pointer type
    /usr/include/stdio.h:355: note: expected ‘struct FILE * __restrict__’ but argument is of type ‘char *’
    je suis vraiment débutante en c ...s'il vous plait aider moi

  9. #9
    Invité
    Invité(e)
    Par défaut
    Comme je le disais :
    Citation Envoyé par Winjerome Voir le message
    Prends l'habitude de consulter la documentation des fonctions que tu utilises
    man fprintf
    où tu y verras entre autres le prototype suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int fprintf (FILE *stream, const char *format, ...);

  10. #10
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par défaut
    j'ai laissé mon programme principale et j'ai essayé d'executer un petit programme pris du tutoriels C ...comme d'habitude la compilation a bien fait mais lors de l'execution j'ai rien vu comme résultat. voilà le 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
    #include <stdlib.h>
    #include <stdio.h>
     
    int main(int argc, char *argv[])
    {
        FILE* fichier = NULL;
     
        fichier = fopen("Capture.txt", "w");
     
        if (fichier != NULL)
        {
            fputc('A', fichier); // Écriture du caractère A
            fclose(fichier);
        }
     
        return 0;
    }
    j'utilise gcc comme compilateur et j'ai en train de travailler sur la console

  11. #11
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par défaut
    je fais une petite modification, je précise le chemin d'accés du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ichier = fopen("/home/ahlem/Desktop/Capture.txt", "w");
    mais pas de nouveau, toujours pas de résultat

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/02/2014, 11h14
  2. [XL-2010] Copier le contenu d'un fichier texte dans un autre fichier texte
    Par Piixx_e dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 15/11/2013, 11h31
  3. Réponses: 0
    Dernier message: 14/06/2013, 08h33
  4. Copier le contenu d'un fichier texte
    Par rezguiinfo dans le forum C#
    Réponses: 10
    Dernier message: 21/03/2011, 12h15
  5. Réponses: 3
    Dernier message: 19/05/2009, 09h00

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