[C++] fstream

fstream [C++] - Programmation

Marsh Posté le 28-05-2001 à 09:50:05    

J'arrive pas a bien utiliser fstream, j'explique :
 
mon fichier généré par Matlab :
    3.00000
    1.00000
    3.80000
    0.00290
    0.00500 ...
 
le code C++ pour le lire :
int nb;
double lg;
fstream * fichier;
fstream = new fstream("donnees",ios::in);
fichier->getline(reinterpret_cast(&nb), sizeof(nb));
fichier->getline(reinterpret_cast(&lg), sizeof(lg));
fichier->close();
 
Je veux en fait récupérer les valeurs de mon fichier et les convertir dans un type donnée. Mais quand je regarde les valeurs récupérées, c'est du style 256789630.  :ouch:  
What is the problem ?  :sweat:  
 
PS : A quoi sert using namespace std ?
      A la compile, il ne trouve pas les fichiers en-tête iostream et fstream. Je suis obligé de lui spécifié le chemin .../g++-3 ?  :gun:

Reply

Marsh Posté le 28-05-2001 à 09:50:05   

Reply

Marsh Posté le 28-05-2001 à 09:51:10    

j'ai mis une réponse dans l'autre topic.

Reply

Marsh Posté le 28-05-2001 à 10:09:03    

1) et 2) Peux-tu me donner une exemple simple par rapport à ce que j'ai donné, please ?  :jap:  
 
3) Je pense donc que j'en ai pas besoin étant donné que j'utilise g++.
 
4) Mes fichiers sont nommés .C et .H.

Reply

Marsh Posté le 28-05-2001 à 10:39:42    

par exemple :
 
int nb;
double lg;
ifstream fichier("le_nom_de_ton_fichier" );
fichiers >> lg;
nb = lg;
fichier >> lg;
fichier.close();
 
pour tes en-têtes : tu mets bien  
 
#include <iostream>
 
et pas  
 
#include "iostream"
 
?

Reply

Marsh Posté le 28-05-2001 à 10:58:08    

Pour l'en-tête, je mets #include <fstream> (je crois qu'il fait lui-même un include de iostream).
Il y a un cast implicite lorsque tu ecris nb = lg, ou dois-je l'ecrire explicitement nb = (int) lg ?

Reply

Marsh Posté le 28-05-2001 à 11:02:46    

le cast se fera sans pb...
 
Je comprends pas qu'il ne te trouve pas tes headers standards.... c'est quelle version de gcc ?

Reply

Marsh Posté le 28-05-2001 à 11:32:59    

<error error :-) >

 

[edit]--Message édité par Bluetooth--[/edit]

Reply

Marsh Posté le 28-05-2001 à 11:34:02    

J'ai compilé mon source sous deux plate-formes, la première est Solaris 8 dans une école où je réalise ce prog (SupAéro) mais j'ai pensé que l'environnement était mal configuré.
Alors j'ai ramené le prog chez moi où j'ai fraichement installé Mandrake 8 et j'ai les mêmes erreurs : il me trouve pas les header iostream et fstream dans les répertoires strandard /usr/include etc... J'ai donc cherché où étaient les headers et j'ai rajouté dans mon makefile l'option -I/usr/include/g++-3/, répertoire où ils se situaient. :gun:  
Est-ce que tu y comprend quelque chose, moi pas ! :crazy:
Voilà et merci pour tes lumières ! :jap:

Reply

Marsh Posté le 28-05-2001 à 13:16:24    

minusplus> J'ai essayé ce midi ce que tu m'as conseillé, et ça marche !!! (enfin chez moi) :hap:  
Je ne sais comment te remercier !!! (pas en nature) :jap:  
 :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed