Bonsoir
Ben ma question est simple, comme rediriger le flux cerr vers un fichier ??
Merci d'avance.
Bonsoir
Ben ma question est simple, comme rediriger le flux cerr vers un fichier ??
Merci d'avance.
Si tu ne veux pas le faire dans ton programme, tu peux aussi utiliser une redirection lorsque tu lances ton executable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <iostream> #include <fstream> int main() { std::ofstream Out("Error.txt"); std::cerr.rdbuf(Out.rdbuf()); std::cerr << "Test"; return 0; }
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Si la fichier n'existe pas, est-ce que ça créer le fichier ?? Parce que dans mon programme opengl, j'ai fais un copier-coller de ton code, mais je ne vois pas de Error.txt dans le dossier de mon executable...Envoyé par Laurent Gomila
Sinon, qu'est-ce que tu entends pas "redirection au lancement de mon executable" ?
EDIT: En fait ça marche, mais j'aurais besoin de ça pour afficher les plantages... et ça ne fonctionne pas quand ça plante![]()
Oui, ça va créer le fichier. Vérifie le répertoire de travail, peut-être est-il différent du répertoire de ton exécutable.Si la fichier n'existe pas, est-ce que ça créer le fichier ?? Parce que dans mon programme opengl, j'ai fais un copier-coller de ton code, mais je ne vois pas de Error.txt dans le dossier de mon executable...
Ca dépend du système, mais globalement c'est un truc de ce genre (en ligne de commande) :Sinon, qu'est-ce que tu entends pas "redirection au lancement de mon executable" ?
Par contre, me rappelle plus si 2 est bien le numéro correspondant à cerr.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Programme.exe 2> out.txt
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Le truc bizarre, c'est que quand ça plante dans le constructeur d'une classe (classe OGLFT, dans la fonction FT_Freetype_Version ou un truc du genre), ça n'écrit rien dans error.txt... :-/
Essaye de placer un flush, avec std::flush ou std::endl;
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
En vrac...
Ca ne plante pas par hasard dans un constructeur de variable globale appelé avant main?
Essaye de faire
pour contrôler le buffering.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Out << std::unitbuf;
Il vaudrait mieux remettre le streambuf de cerr avant de sortir de main pour avoir les sorties éventuellement faites dans les destructeurs de variables globales.
Ca plante dans le constructeur d'une classe pour afficher du texte sous Opengl à l'aider de Freetype 2. Ca plante sur la fonction FT_Library_Version.Envoyé par Jean-Marc.Bourguet
Sinon, comment remettre le streambuf de cerr ?
Partager