Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
878 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c++] Lire un fichier <== simple pour vous, moa j'ai du mal lol

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] Lire un fichier <== simple pour vous, moa j'ai du mal lol

n°466326
spoulounga​ni
Rosa...Bebecita
Posté le 24-07-2003 à 00:26:57  profilanswer
 

#include <fstream>
 #include <iostream>
 
  using namespace std;
   
  int main()
  {
      char fileName[80]="fic.txt";
      char buffer[255];
   char buffer2[255];
 
     ifstream fin(fileName);
 
  while(fin.getline(buffer,255))
   cout << buffer << endl;
 
 fin.seekg (0, ios::beg); //je pensais ke ça me permettrais de retourner au début du fichier !!
 
 if(fin.eof())
  cout << "fin de fichier";
 
  while(fin.get(buffer2,255))
   cout << buffer2 << endl;
 
 return 0;
  }
 
Voici mon code, je voudrais simplement lire deux fois de suite le contenu d'un fichier texte, rien de bien extraordinaire mais je n'y arrive pas.
 
Please help ;)

mood
Publicité
Posté le 24-07-2003 à 00:26:57  profilanswer
 

n°466331
Taz
bisounours-codeur
Posté le 24-07-2003 à 00:35:30  profilanswer
 

1) utilise les std::string et la fonction associée
getline(istream&, string& )
 
2) sinon ton code me parait OK... quel est le problème?

n°466332
spoulounga​ni
Rosa...Bebecita
Posté le 24-07-2003 à 00:38:19  profilanswer
 

Sorry le problème c'est kil n'affiche le contenu du fichier qu'une seule fois ensuite il m'affiche "fin de fichier" du coup je kroa ke c'est pour ça kil ne rentre pas dans ma seconde boucle !!

n°466338
Taz
bisounours-codeur
Posté le 24-07-2003 à 00:54:10  profilanswer
 

ah oui, merde, j'avais pas vu. quand tu arrives en fin de fichier, le flag eof est positionné. donc il faut remettre les ardoises à zéro avec ::clear()
 

Code :
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. using namespace std;
  5. int main(int argc, char **argv)
  6. {
  7.   ifstream ifs;
  8.   istream *isp=0;
  9.   if(argc!=2)
  10.     {
  11.       cout << "Utilisation de « cin »\n";
  12.       isp=&cin;
  13.     }
  14.   else
  15.     {
  16.       cout << "Utilisation de  « " << argv[1] << " »\n";
  17.       ifs.open(argv[1]);
  18.       isp=&ifs;
  19.     }
  20.   istream &is(*isp);
  21.  
  22.   if(!is)
  23.     {
  24.       cout << "Impossible d\'ouvrir le flux\n";
  25.       return 1;
  26.     }
  27.   string s;
  28.   cout << "Lecture\n";
  29.   while(getline(is, s))
  30.     {
  31.       cout << s << '\n';
  32.     }
  33.   is.clear();
  34.   if(is.seekg(0, ifstream::beg))
  35.     {
  36.       cout << "Relecture\n";
  37.       while(getline(is, s))
  38. {
  39.   cout << s << '\n';
  40. }
  41.     }
  42.   else
  43.     {
  44.       cout <<  "Ce n'est pas un flux positionnable\n";
  45.     }
  46. }


 
edit: petite amélioration


Message édité par Taz le 24-07-2003 à 01:10:56
n°466348
spoulounga​ni
Rosa...Bebecita
Posté le 24-07-2003 à 01:17:11  profilanswer
 

Merci bcp, je débute en C++ et je bute sur des problèmes relativement faciles !! Enfin, voilà j'ai compris et c'est l'essentiel !! Encore merci d'avoir répondu si vite !!  :jap:

n°466427
VisualC_n3​T
Boolays élevés au grain
Posté le 24-07-2003 à 09:25:01  profilanswer
 

si tu debutes c'est pas mal t'en est deja a la gestion de fichiers :) .
Moi je debute et j'en suis qu'aux pointeurs et tout  :)


---------------
Human Forever
n°466590
LetoII
Le dormeur doit se réveiller
Posté le 24-07-2003 à 11:17:56  profilanswer
 

++Taz a écrit :

ah oui, merde, j'avais pas vu. quand tu arrives en fin de fichier, le flag eof est positionné. donc il faut remettre les ardoises à zéro avec ::clear()


 
Le clear, mais voilà ce qui m'échappe depuis si longtemps, je vais peut être finir par les aimer ces fstream (en même temps on pourrait s'attendre à ce que seek enlève le flag eof quand on retourne au début du fichier).


Message édité par LetoII le 24-07-2003 à 11:18:14

---------------
Le Tyran
n°466605
spoulounga​ni
Rosa...Bebecita
Posté le 24-07-2003 à 11:21:42  profilanswer
 

VisualC_n3T a écrit :

si tu debutes c'est pas mal t'en est deja a la gestion de fichiers :) .
Moi je debute et j'en suis qu'aux pointeurs et tout  :)  


bè c'est le langage C++ ke je ne connais pas, mais j'ai de bonnes notions en programmation objets et en algorythmique. Cependant je te rassure, je galère grave quand même lol

n°466612
spoulounga​ni
Rosa...Bebecita
Posté le 24-07-2003 à 11:23:11  profilanswer
 

LetoII a écrit :


 
Le clear, mais voilà ce qui m'échappe depuis si longtemps, je vais peut être finir par les aimer ces fstream (en même temps on pourrait s'attendre à ce que seek enlève le flag eof quand on retourne au début du fichier).


J'ai eu la même réflexion  :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c++] Lire un fichier <== simple pour vous, moa j'ai du mal lol

 

Sujets relatifs
Inclure un fichier pdf en php....Probleme avec mon fichier .htaccess
Question simple JS....[php] cherche Fonction pour lire un fichier en php
signature hexadecimale fichier money ?Générer un fichier Excel
recuperer la valeur d un lien html dans un autre fichier[HTML/APACHE SSI] Include d'un fichier
ResourceBundle basé sur un fichier situé à une url spécifique 
Plus de sujets relatifs à : [c++] Lire un fichier <== simple pour vous, moa j'ai du mal lol


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR