Bonjour,
j'ai coder une classe ou j'essaye qui doit ouvrir un fichier avec fstream :
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
   | #include <iostream>
#include <fstream>
using namespace std;
 
namespace libxml
{
  class xml
  {
  public:
    string XML_VAR_file;
    int XML_VAR_file_id;
    string XML_VAR_query;
    fstream XML_open_file;
 
    xml(string);
    bool XML_query(string);
    ~xml();
  };
 
  xml::xml(string XML_VAR_file)
  {
    xml::XML_VAR_file = XML_VAR_file;
    xml::XML_open_file.open(xml::XML_VAR_file, ios::ate); // LIGNE 23
  }
  bool xml::XML_query(string)
  {
 
  }
  xml::~xml()
  {
    xml::XML_open_file.close();
  }
} | 
 Seulement, ça me renvois une erreur :
	
	1 2 3 4 5 6
   | ~/Files/Programmes/Cpp/tests $ g++ libxml.cpp -o libxml
 
libxml.cpp: In constructor libxml::xml::xml(std::string):
libxml.cpp:23: error: no matching function for call to std::basic_fstream<char,
std::char_traits<char> >::open(std::string&, const std::_Ios_Openmode&)
/usr/include/c++/4.2/fstream:778: note: candidates are: void std::basic_fstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]  | 
 Si j'ai bien compris il faut que dans cette ligne :
	
	xml::XML_open_file.open(xml::XML_VAR_file, ios::ate); // LIGNE 23
 xml::XML_VAR_file soie un pointeur de constante de char ?
Seulement si je fait un transtypage :
	
	xml::XML_open_file.open((const char*)xml::XML_VAR_file, ios::ate);
 Ça m'envoie une autre erreur :
	
	1 2
   | libxml.cpp: In constructor libxml::xml::xml(std::string):
libxml.cpp:23: error: invalid cast from type std::string to type const char*  | 
 Quelqu'un aurait la solution ?
Merci 
						
					
Partager