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