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

  FORUM HardWare.fr
  Programmation
  C++

  ouverture fichier texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ouverture fichier texte

n°2044094
sliders_al​pha
Posté le 23-12-2010 à 17:34:14  profilanswer
 

plop,
 
je voudrais ouvrir un fichier texte afin de recuperer des info a l'interieur,
tous se passe bien durant la premiere ouverture, mais la seconde foire
 
j'ai taté un peu avec des cout et du tellg(), et j'ai vu que lors de la premiere ouverture
le curseur par de 0, alors que lors de la deuxiemme, il part de -1 et ne rentre pas dans mon second while
 
j'ai esseyer de le remettre a 0 mais rien a faire, apres la ligne tellg me retourne toujours -1
 

Code :
  1. void convertFileToMat(char *name, int ***mat)
  2.    {
  3.    //la matrice est conforme a la page 3  
  4.  
  5.    //parcourir tout le fichier afin de definir le nombre de ligne
  6.   int counter = 0;
  7.   string line;
  8.   ifstream myParaFile (name);//creation et ouverture en meme temps
  9.   if (!myParaFile.is_open())
  10.      {
  11.      //impossible d'ouvrir
  12.      }
  13.   else
  14.      {
  15.        while ( !myParaFile.eof() )
  16.           {
  17.           getline (myParaFile,line);
  18.           cout <<line<< endl;
  19.           counter++;
  20.           }
  21.       myParaFile.close();
  22.      }
  23.    cout << "\n\nil y a "<<counter<<" lignes"<<"\ncreation de la matrice\n\n";
  24.  
  25.    //creation de la matrice
  26.  
  27.    //remplir la matrice par algo de cassage
  28.    myParaFile.open(name); //ouiverture de l'objet
  29.    cout << "ouverture fichier\n";
  30.    //ici le curseur dde positon est a -1 et a donc besoin d'etre remit a 0
  31.    myParaFile.seekg(0);
  32.    cout << "position = "<<myParaFile.tellg()<<"\n";
  33.    if (!myParaFile.is_open())
  34.      {
  35.      //ouverture impossble
  36.      }
  37.    else
  38.      {
  39.        while ( !myParaFile.eof() )
  40.           {
  41.           getline (myParaFile,line);
  42.           cout <<line<< endl;
  43.           //algo de cassage ici
  44.           counter++;
  45.           } 
  46.       myParaFile.close();
  47.      }
  48.    
  49. }


 
des idées?  
merci ;)

mood
Publicité
Posté le 23-12-2010 à 17:34:14  profilanswer
 

n°2044100
h3bus
Troll Inside
Posté le 23-12-2010 à 18:01:41  profilanswer
 

C'est le même fichier, pourquoi tu ne fais pas juste un seek avant ta deuxième lecture?


---------------
sheep++
n°2044105
sliders_al​pha
Posté le 23-12-2010 à 18:37:12  profilanswer
 

pas bete
 
mais raté :p, la position va bien a 0 mais je ne rentre toujours pas dans le while
 
c'est mes debut en programmation objet, par hazard, le flag eof() aurit pas besoin d'etre resetter?
 
###EDIT
 
he ben si :D, myParaFile.clear();
par contre, si j'avais ouvert un autre fichier texte, j'aurais du faire un clear quand meme,


Message édité par sliders_alpha le 23-12-2010 à 18:44:48
n°2045158
Amonchakai
Posté le 30-12-2010 à 15:23:31  profilanswer
 

eof() il ne faut pas l'utiliser comme cela: http://cpp.developpez.com/faq/cpp/ [...] CHIERS_eof
 
Ca c'est mieux:

Code :
  1. while ( getline (myParaFile,line) )  {
  2.      cout <<line<< endl;
  3.      counter++;
  4. }


 
Et cela réglera surement tes pb plus loin...


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

  ouverture fichier texte

 

Sujets relatifs
Gestion d'un fichier de réservation.[BAT]Copier un fichier d'un bureau vers les autres profils
Batch Supprimer le caractère = contenu dans un fichierModifier des capsules de texte sur une image en ligne
VBA Excel : Question simple, Textbox stocke des nombres en texteMise en place d'un test sur le nom d'un fichier
Urgent : Récupérer fichier .db de base SQL Anywhere 5uControleur PIC export fichier texte
Ouverture/lecture dans un fichier texte Access VBAouverture fichier texte dans une boucle //ex edit meta tags
Plus de sujets relatifs à : ouverture fichier texte


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