Probleme compilation de fstream avec gcc
Bonjour à tous,
J'ai un problème qui est bien embêtant et je n'ai trouvé aucune solution sur le web.
J'ai des programmes en c++ qui marchent très bien sur Windows avec Visual Studio. Mais pour plusieurs raisons je doit les faire marcher sur Linux. J'installe donc Codeblocks, choisi le compilateur gcc copie-colle mon main.cpp et là c'est le drame ça compile pas : la librairie <fstream> ne reconnaît plus les string, ni les flux de type <<. Voici mon code (raccourci) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
int main(int n, char *argument[])
{
string fasta = argument[1];
string output = argument[2];
ifstream fichier(fasta, ios::in);//Erreur ici
ifstream fout(output, ios::out | ios::trunc);//Erreur ici
if(fichier && fout)
{
fout <<"Blablabla"<< endl; //Erreur ici
fichier.close();
fout.close();
}
return 0;
} |
Pour l'ouverture des fichiers, l'ajout de .c_str() résout le problème :
Code:
ifstream fichier(fasta.c_str(), ios::in); //Marche
Je suppose qu'il existe une solution du même genre pour fout << "Blablabla" mais mise à part ma simple curiosité (les bibliothèques de gcc seraient moins performantes? Non mises a jours?), j'ai pas mal de programmes avec pas mal de commandes comme ça donc si je n'avait pas à toutes les reprendre, ça m'arrangerai...
Merci d'avance.