01net    Web


Actuellement en ligne : 731 Utilisateurs dont 20 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > C/C++
> manipulation d'un fichier
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
stiko
  
   
      ?   @     Posté le 05/07/2006 16:49:06  
Voter pour ce message
slt;
c'est une programme pour ouvrire un fichier 'toto.txt', la premiere partie est pour afficher le cntenu de fichier dans la cosole et la deuxiéme partie pour compter le nombre de ligne de meme fichier.et comme vous pouvez noté que j étais obligé de faire 2 fois le" ifstream" car si je met les 2 partie sous la meme ifstream il ne m'a ffiche que la première.


#include <algorithm>
#include <fstream>
#include <string>
#include <iostream>
using namespace std;

int main()
{
// le constructeur de ifstream permet d'ouvrir un fichier en lecture
ifstream fichier( "toto.txt" );

if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
{
string ligne; // variable contenant chaque ligne lue
while ( getline( fichier, ligne,'\0') )
{
cout << ligne << endl;
}

ifstream fi ("toto.txt" );

int lines = count(
istreambuf_iterator<char>( fi ),
istreambuf_iterator<char>(),
'\n' );

// cette boucle s'arrête dès qu'une erreur de lecture survient

// afficher la ligne à l'écran
cout << lines << endl;
}
}


le fihier "toto.txt":


2958 ; 2944 ; 2980 ; 2971 ; 2981 ; 2956 ; 2964 ; 2987 ; 2968 ; 29 ;
2991 ; 3017 ; 3016 ; 3025 ; 3032 ; 3043 ; 2994 ; 3008 ; 2994 ; 3008 ;


les resultat afficher sur la console est un string "ligne" comment il faut faire pour le faire afficher comme un integer??, et
une derniere question comment il faut faire pour changer le ';' en ", "dans le resultat finale.je pense que je suis un peu chiant.
merci pour votre réponse
esselfe
  Je calcul donc je suis relativ
  :-)
      ?   @     Posté le 07/07/2006 03:31:48  
Voter pour ce message
Essais "fstream" sur Google.
Y'a des sites qui ont des trucs.

N'oublie pas de refermer le fichier apr`s utilisation..


v'là juste une idée:
char c;
int countline;
ifstream ifs;
ifs.open("toto.txt");

while(!ifs.eof() /*je ne sais pas si c'est ça, j'ai pas mon compilo*/ ){
...c =getc();
...if(c=='\n') ++countline;
...cout <<c;
}
cout <<endl <<countline;
ifs.close();


pour faire deux ou plusieurs comtpes au travers un fichier, reset le pointeur de lecture au début du fichier comme ça:
ifstream ifs;
ifs.open("toto.txt");
int filesize;
ifs.seekg(0, ios::end);
filesize =ifs.tellg();
ifs.seekg(0, ios::beg);


-->Message édité par esselfe le 07/07/2006 03:36:15<--
-------
vive Linux!
<     1       >

01net > Forum de 01net > Programmation et développement > C/C++
> manipulation d'un fichier

Aller à :

Page générée en : 0.081s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Jeu-concours
Jouez et gagnez des places pour le 2è tour de la Coupe de la Ligue avec RMC.fr !
Jeux
Nouveauté : Partez pour les antipodes, à Sydney en Australie, pour vivre la grande aventure.