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 :

ecriture dans un fichier


Sujet :

C++

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'aimerais écrire dans un fichier avec une boucle for, pouvez vous m'aidez svp ? Cete partie du codage doit se trouver dans le main.

    Ma méthode écrire est la suivante :

    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
    bool ESFichier::Ecrire(char *ligne)
    {
    	int status;
     
    	// sort si fichier pas ouvert
    	if (fichier == NULL) return false;
     
       else {
    			// ecrit  la ligne
    			status = fprintf (fichier, "%s\n", ligne);
     
    			// Compte rendu d'état
    			return (status != (int)strlen(ligne));
       		}
     
    }
    Merci d'avance

  2. #22
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Je comprends pas bien, où est ton problème.
    si tu veux écrire dans une boucle for, fais simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i(0) ; i < VALEUR ; ++i)
    {
       ...
       Ecrire(maLigne);
    }
    enfin d'après ce que j'ai compris

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    Je veux tout simplement écrire dans un fichier texte

  4. #24
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Et bien dans ce cas, utilise ce code :

    Citation Envoyé par Herode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <fstream>
    #include <string>
     
    string str;
    ifstream inFile( "in.txt" );
    ofstream outFile( "out.txt" );
     
    if ( ! inFile || ! outFile ) return; 
     
    while ( getline( inFile, str ) ) {             
        outFile << str.c_str() << endl;    // ECRITURE DANS LE FICHIER OUT.TXT
    }

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    Je l'ai commencé, pouvez vous la complétez svp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       // Ecriture d'un fichier ISO
     
     
        // Ouverture du fichier en mode Ecriture
        FichEcrire->Ouvrir("programme_iso.txt","w");
        cout << "ouverture du fichier en ecriture" << endl;
     
        while (!FichEcrire->Ecrire(Tab)) cout << "Probleme d'ecriture dans le fichier" << endl;
     
     
     
     
        // Fermeture
        FichEcrire->Fermer();
    Merci

  6. #26
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Complèter avec quoi ??

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    la ca lit qu'une ligne, il faut faire une boucle for.

    Veux tu que je te passe tout mon code

  8. #28
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Lis le dernier code de niglo. Il ne lit pas qu'une ligne, puisqu'il y a une boucle while. A quoi te servirait un for ici :
    Fiquet
    - FAQ SDL
    - FAQ C++

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    oui mais ça ne marche pas son code sur le mien

  10. #30
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Alors emploie d'abord le sien et modifie-le en conséquence. Je comprends pas pourquoi tu as encapsulé ceci en voyant. Les fstream vont très bien comme ça pour lire et écrire. Et d'ailleurs on peut pas seulement "compléter" avec le code que tu as là ou j'ai pas tout compris
    Fiquet
    - FAQ SDL
    - FAQ C++

  11. #31
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    si je vous donne mon main entier, ça ne vous aidera pas ?

  12. #32
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Herode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <fstream>
    #include <string>
     
    string str;
    ifstream inFile( "in.txt" );
    ofstream outFile( "out.txt" );
     
    if ( ! inFile || ! outFile ) return; 
     
    while ( getline( inFile, str ) ) {             
        outFile << str.c_str() << endl;    // ECRITURE DANS LE FICHIER OUT.TXT
    }
    Ce code te permet de recopier le contenu du fichier "in.txt" dans le fichier "out.txt" !!
    Pour chaque ligne lue dans "in.txt", on écrit cette ligne dans "out.txt" !!
    Maintenant, c'est à toi d'adapter cela à ce que tu veux faire !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      // Ecriture d'un fichier ISO
     
     
        // Ouverture du fichier en mode Ecriture
        FichEcrire->Ouvrir("programme_iso.txt","w");
        cout << "ouverture du fichier en ecriture" << endl;
     
        while (!FichEcrire->Ecrire(Tab)) cout << "Probleme d'ecriture dans le fichier" << endl;
     
     
     
     
        // Fermeture
        FichEcrire->Fermer();
    Dans ton code, tu fais un while sur une écriture, donc forcément, tu ne vas jamais écrire plus d'une ligne.
    Il faut que ton code ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    bool fini = false;
    while (!fini)
    {
       if (!FichEcrire->Ecrire(Tab))
       {
          cout << "Probleme d'ecriture dans le fichier" << endl;
          fini = true;
       }
    }
    C'est à toi de définir ce qu'il faut mettre à la place de pas fini dans le while pour qu'il écrive ce que tu souhaites !

  13. #33
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Polo40
    si je vous donne mon main entier, ça ne vous aidera pas ?
    On est pas la pour faire le boulot à ta place ... on a aussi des trucs à faire de notre côté ! Donc utilise les codes précédents qu'on t'a filé et adapte les à tes besoions !

  14. #34
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    ok dsl merci

  15. #35
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Polo40
    ok dsl merci
    Y'a pas de quoi
    Bon courage !

  16. #36
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    que fait cette méthode svp ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (char i=0;i<50;i++)
    {
    FichEcrire->Ecrire(Tab[i]);
    Tab[i];
    }

  17. #37
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut entrée sortie en c++
    s'il vous plait, je suis dégouté du c++, pouvez vous m'aidez, en msn ça serait plus pratique, j'ai des codes sources, il y a pratiquement rien à coder.

    Je veux écrire dans un fichier texte en c++.

    Aidez moi svp

  18. #38
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Pourquoi être dégouté alors que c'est si simple, suffit de lire la doc

    Même en faisant une recherche avec google sur les mots suivants:
    c++ fichier texte


    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
     
    #include <iostream>
    #include <fstream>
     
    int main(int argc, char **argv) {
      try { 
        std::ofstream fileout("fichier.txt", std::ios::trunc);
        if(! fileout ) {
          std::cerr << "Impossible d'ouvrir le fichier" << std::endl;
        }
        else {
          fileout << "Blablabla" << std::endl;
          fileout.close();
        }
        return 0;
      } 
      catch( const std::exception & ex ) {
        std::cerr << "Exception: " << ex.what() << std::endl;
      } 
    }
    Nul ne peut mieux connaitre la connaissance qu'elle-même.

  19. #39
    Membre averti Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Ca appelle 50 fois la méthode Ecrire grace à l'objet FichEcrire qui est un objet de la classe ESFichier si je me rappelle bien. Ca lui envoie en paramètre le contenu du tableau à la position "i".

    Pour ce qui est de Tab[i]; à la ligne suivante et bien je vois aucunement à quoi ca peut servir, à rien.

    Je te conseil de te documenter un peu sur le C++ (objets, classes, procédures et fonctions, etc...) avant de te lancer dans l'écriture et la lecture de fichier.

  20. #40
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    je préferé que l'on fasse avec mon main a moi

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. 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