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) :
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
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; }
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part ifstream fichier(fasta.c_str(), ios::in); //Marche
Merci d'avance.
Partager