Pb avec les string !!!

ElectricalMan Messages postés 39 Date d'inscription samedi 20 mars 2004 Statut Membre Dernière intervention 5 novembre 2008 - 13 août 2006 à 20:51
cs_mohammed amine Messages postés 23 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 24 avril 2007 - 18 août 2006 à 20:57
slt,

j'ai qqs "erreurs" à la compilation ! c à s'arracher les cheveux, pouvez vous m'aider svp : 

#include  
#include <fstream.h>
#include <string>

using namespace std;

.........
string   fichierIn, fichierOut, Rep, ficDiag, ficDiag_fsm;

   cout << "\n Entrer le nom du fichier ".d"  : ";
  //cin >> ficDiag;      // ça passe pas !!!
  getline(cin, ficDiag);      // ça passe pas aussi
  fichierIn = Rep + ficDiag + ".d";

ifstream  ficIn1( fichierIn.c_str() );     // ça passe pas 
  if ( !ficIn1 )
  {
      cout << "\n erreur : le fichier  "" << fichierIn << ""  n'existe pas !!!\n\n";      // ça passe pas 
      exit(0);
  }

par exp pour le getline il me sort :
error C2784 : 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &,const _E)' : could not deduce template argument for 'class std::basic_istream<_E,_Tr> &' from 'class istream_withassign'
et 3 autres erreurs du même style pour getline !

pour le ifstream il me sort :
error C2872: 'ifstream' : ambiguous symbol

pour ce cout il me sort :
error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<c

et après tt les getlignes du style  getline(ficIn1,strLigne,'\n')   ça marche pas aussi ?!!!!

7 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
13 août 2006 à 21:19
string = objet.
Ce n'est pas un type primitif!

Regarde dans ses proproétés, tu dois avoir quelquechoses du genre ficDiag.c_str()

Shell
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 août 2006 à 21:25
As-tu essayé de remplacer

#include
#include <fstream.h>

par

#include
#include <fstream>

?

DeAtHCrAsH, j'ai pas compris ta remarque

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
ElectricalMan Messages postés 39 Date d'inscription samedi 20 mars 2004 Statut Membre Dernière intervention 5 novembre 2008
13 août 2006 à 21:33
et oui comme par magie !

et c quoi la différence ?!!!
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 août 2006 à 21:36
#include
#include <fstream.h>
Ne sont plus utilisés, chez moi le compilo ne trouve même pas
Les en-têtes sandard du C++ n'ont pas (plus) d'extension, c'est tout ce qu'il faut savoir

_____________________________________
Un éditeur de ressources gratuit pour Windows
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ElectricalMan Messages postés 39 Date d'inscription samedi 20 mars 2004 Statut Membre Dernière intervention 5 novembre 2008
13 août 2006 à 21:45
merci pour l'info,  j'aurai pas avancé d'1 poil sans ça !
en tt cas,  ça me permet d'aller bouffer ...
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
13 août 2006 à 21:54
Ma remarque ?
Une fois de plus j'ai lu de traviol, autant pour moi.

Shell
0
cs_mohammed amine Messages postés 23 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 24 avril 2007
18 août 2006 à 20:57
pour les deux premiers erreurs :il faut enlever l'extention ".h" sur les deux bibliothéques "iostream" et "fstream" par ce que t'a utiliser le "using name space".
pour la troisiéme erreur : il faut surdéfinir l'opérateur "<<" car le type "string" n'est pas un type primitif.donc "fichierIn"=objet.
0
Rejoignez-nous