Pb avec les string !!!

Signaler
Messages postés
39
Date d'inscription
samedi 20 mars 2004
Statut
Membre
Dernière intervention
5 novembre 2008
-
Messages postés
23
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
24 avril 2007
-
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

Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
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
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
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
Messages postés
39
Date d'inscription
samedi 20 mars 2004
Statut
Membre
Dernière intervention
5 novembre 2008

et oui comme par magie !

et c quoi la différence ?!!!
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
#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
Messages postés
39
Date d'inscription
samedi 20 mars 2004
Statut
Membre
Dernière intervention
5 novembre 2008

merci pour l'info,  j'aurai pas avancé d'1 poil sans ça !
en tt cas,  ça me permet d'aller bouffer ...
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Ma remarque ?
Une fois de plus j'ai lu de traviol, autant pour moi.

Shell
Messages postés
23
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
24 avril 2007

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.