Gut Fehlerausgabe



  • Moin Leute,
    ich Arbeite gerade an einem konsolen c++ Programm. Zum debuggen habe ich eine Message.h mit Funktionen wie void message(char* txt,bool place){..}.
    So kann ich aber immer nur ein Text ausgeben lassen. Gibt es nicht etwas mehr dyn. womit auch Int, double PLUS Text übergeben werden können?? Interiertes sprintf oder so. Was gibt es für Möglichkeiten?????

    mfg
    david



  • Wenn du willst, kannst du dir für jeden Typ, den du ausgeben willst, eine eigene Überladung für message() schreiben (aber das kann etwas aufwendig werden). Ansonsten: Wie genau arbeiten deine Message-Funktionen?



  • Habe ich auch schon dran gedacht. Finde aber, dass dieses bei vielen möglichen Kombis etwas unschön ist. Muss doch etwas dynamischeres geben



  • Wie ich schon sagte: Was machst du bisher?

    Eine nette Lösung in C++ sind Templates in Kombination mit iostreams:

    static ostream logfile;
    
    template<typename T>
    void message(const T& value)
    {
      logfile<<value;
    }
    

    (wobei - hier könntest du noch einen Schritt weitergehen und logfile<<"Fehler:"<<errorcode<<endl; direkt im Text verwenden)

    Wenn du unbedingt die Syntax von C's printf()-Familie übernehmen willst, schau dir mal vfprintf() an.


Anmelden zum Antworten