APPRENDRE LE FONCTIONNEMENT DES CLASSE + CLASS POUR CREER UN FICHIER LOG
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
10 juin 2004 à 20:45
nepi
Messages postés85Date d'inscriptiondimanche 13 juin 2004StatutMembreDernière intervention30 décembre 2007
-
25 juin 2004 à 20:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
nepi
Messages postés85Date d'inscriptiondimanche 13 juin 2004StatutMembreDernière intervention30 décembre 2007 25 juin 2004 à 20:52
Ok ok j'ai changé de pseudo mais c'est moi :: mon code est detesté par moi et maintenant par vous ... je vais me pendre :(
Non mais en fait je savais pas quoi faire et je me suis dit tien je vais faire une source et comme j'avais pas d'idee et puis j'etais en train d'apprendre les classes je me suis dit je vais faire ca. (note : je ne connaissez pas encor les constructeurs c'est pour ca !!!)
Mais je fais pas de c++ comme ca d'habitude : je fais de l'OpenGl et la je suis en train de faire une super librarie - peut etre que je n'aurais pas 3 cette fois - ci ..............................
++ (merci de vos commentaires)
D'accord, ces précisions étaient aussi importantes qu'intéressantes.
++
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 13 juin 2004 à 19:35
oui d'accord mais open c'est posix et donc non standard, si tu ve rester standard et forer l'ecriture dans les fichiers log ya pas trop le choix
TeLeTUbIz ==> je m'en doute, mais je parlait des e/s standards
sinon oui, cerr n'est pas bufferisée, pour garantir l'affichage en cas de plantage par exemple
flush n'a aucun effet sur cerr, urilisé endl sur cerr est inutile
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 13 juin 2004 à 19:28
en C fopen est bufferisé mais pas open si jme rappelle bien
cerr n'est pas bufferisé ? Pourtant il descend de ostream de stream et de tout le tintouin. Et les primitives des buffers marchent dessus...
Les E/S non bufférisés ? Ben ouai, certainement. Tous les acces en bas niveau sont non bufférisés, mais file de C et fstream de C++ sont bufférisés (le premier je doute).
Enfin, faudrait se renseigner.
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 13 juin 2004 à 18:49
ca existe les e/s fichier non bufferisée ??
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 13 juin 2004 à 17:42
endl fait '\n' + flush :o ca sert a rien d'utiliser des e/s fichier bufferisé si tu flush a chaque fois :o
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 13 juin 2004 à 17:08
cerr ecrit sur la sortie erreur et n'est pas bufferisé, contrairement à clog
Ouai, vraiment très léger. En fait, c'est juste une classe qui permet d'écrire dans des fichiers. Le mieux, c'est de faire:
ofstream log("monlog.log");
puis ensuite log << "OUVERTURE programme" << endl;
log << "la fonction renvoie le code: " << fonction(12) << endl;
etc...
C'est bien foutu les streams avec la STL alors pkoi s'emmerder ?
Puis normalement y'a un stream prévu pour la gestion du log et des erreurs c'est cerr <<
Mais pour beaucoup de compilos, il est équivalent à cout (dommage).
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 11 juin 2004 à 09:29
on dirait du C a part le mot clé classe :o
essaye de fonctionner avec std::string (ca evitera de faire des anneries comme de qu'a remarqué djl) et std::ofstream ...
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 11 juin 2004 à 09:27
et les constances ?
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 10 juin 2004 à 20:52
revoi ca aussi
void LOG::init( char *nom )
{
NOM = nom;
}
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 10 juin 2004 à 20:45
un peu lege
si tu te servais du constructeur (par defaut) et du destructeur, plus besoin de methodes init et fermer, et ouvrir serait optionnelle
25 juin 2004 à 20:52
Non mais en fait je savais pas quoi faire et je me suis dit tien je vais faire une source et comme j'avais pas d'idee et puis j'etais en train d'apprendre les classes je me suis dit je vais faire ca. (note : je ne connaissez pas encor les constructeurs c'est pour ca !!!)
Mais je fais pas de c++ comme ca d'habitude : je fais de l'OpenGl et la je suis en train de faire une super librarie - peut etre que je n'aurais pas 3 cette fois - ci ..............................
++ (merci de vos commentaires)
13 juin 2004 à 19:45
++
13 juin 2004 à 19:35
TeLeTUbIz ==> je m'en doute, mais je parlait des e/s standards
sinon oui, cerr n'est pas bufferisée, pour garantir l'affichage en cas de plantage par exemple
flush n'a aucun effet sur cerr, urilisé endl sur cerr est inutile
13 juin 2004 à 19:28
13 juin 2004 à 19:22
Les E/S non bufférisés ? Ben ouai, certainement. Tous les acces en bas niveau sont non bufférisés, mais file de C et fstream de C++ sont bufférisés (le premier je doute).
Enfin, faudrait se renseigner.
13 juin 2004 à 18:49
13 juin 2004 à 17:42
13 juin 2004 à 17:08
13 juin 2004 à 16:20
ofstream log("monlog.log");
puis ensuite log << "OUVERTURE programme" << endl;
log << "la fonction renvoie le code: " << fonction(12) << endl;
etc...
C'est bien foutu les streams avec la STL alors pkoi s'emmerder ?
Puis normalement y'a un stream prévu pour la gestion du log et des erreurs c'est cerr <<
Mais pour beaucoup de compilos, il est équivalent à cout (dommage).
11 juin 2004 à 09:29
essaye de fonctionner avec std::string (ca evitera de faire des anneries comme de qu'a remarqué djl) et std::ofstream ...
11 juin 2004 à 09:27
10 juin 2004 à 20:52
void LOG::init( char *nom )
{
NOM = nom;
}
10 juin 2004 à 20:45
si tu te servais du constructeur (par defaut) et du destructeur, plus besoin de methodes init et fermer, et ouvrir serait optionnelle
ta pas compris le principe de securite