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 :

Fermer et ouvrir un fichier le meme programme.


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 9
    Par défaut Fermer et ouvrir un fichier le meme programme.
    Bonjour.
    Je dois réaliser un programme pour lire le nombre de mot dans un fichier et le nombre ligne.
    Je suis capable de faire ces deux actions séparement mais pas d'un coup.
    Je lis d'abord le nombre du fichier, je ferme et ouvre le fichier et par la suite je lis le nombre de ligne. Je n'arrive pas à ouvrir le fichier la deuxieme fois.
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    #include <iostream>
    #include <string>
    #include <fstream>
    using namespace std;
    void main(void)
    {
    	string Mot,Phrase;
    	int NombreMot=0,NombreLigne=0;
    	float MotParLigne;
     
    	ifstream Fichier;
    	Fichier.open("3mots.txt"); // Fichier a analyser
    	if(Fichier.fail())
    		cout<<"Erreur lors de l'ouverture du fichier !";
    	else
    	{
     
    		while(Fichier>>Mot)
    		{
    			NombreMot++;// incrémentation à chaque lecture de mot.
    		}
    		cout<<"Nombre de mot "<<NombreMot<<endl;
    		Fichier.close(); // Fermeture du fichier.
     
    	}// fermeture premier else
     
     
     
    		Fichier.open("3mots.txt"); //Ouverture du fichier à analyser .
    			if(Fichier.fail())
    				cout<<"Erreur lors de la deuxieme ouverture du fichier !";
    			else
    			{
    						 while(getline(Fichier,Phrase))
    						 {
    							 NombreLigne++;// incrémentation à chaque lecture de ligne.
    		} 
    						 cout<<"Nombre de lignes "<<NombreLigne<<endl;
    			}
     
    			Fichier.close(); // Fermeture du fichier 2eme fois.
     
     
    	/* MotParLigne= NombreMot/NombreLigne;// Calcul du nombre de mot par ligne 
    		cout<<"Nombre de mots par ligne: "<<MotParLigne<<endl; */
     
    }
    Ps: le fichier 3mots.txt est en piece jointe
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé Avatar de gelam
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Par défaut
    Il semble que le fait de fermer un flot ne réinitialise pas les flags du flot.
    2 solutions
    • Utiliser un deuxième flot
    • faire un clear sur le flot avant la seconde ouverture : Fichier.clear()

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/05/2008, 09h06
  2. Réponses: 0
    Dernier message: 25/03/2008, 11h30
  3. ouvrir un fichier dans un programme VBA sous excel
    Par bryan dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/01/2008, 14h38
  4. Réponses: 1
    Dernier message: 23/07/2007, 11h00
  5. Ouvrir un fichier avec son programme
    Par aliwassem dans le forum Delphi
    Réponses: 1
    Dernier message: 21/10/2006, 21h26

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