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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.