Textausgabefunktion
-
Hallo,
lerne seit einiger Zeit C, da ich aber immer wieder mal an meine grenzen stoße, hab ich mich jetzt endlich mal in einem Forum angemeldet.
Und jetzt gleich zu meinem Problem, beim googln hab ich nichts gefunden da ich auch nicht genau weiß nach was ich suchen soll.
Und zwar möchte ich eine Textausgabefunktion schreiben, die den Text in eine andere Funktion übergibt.
Also so in der einfach Form:
Meine_Funtkion(const char *text) {printf(text)};Im Prinzip geht das ja, aber ich möchte eben auch sowas schreiben können:
Meine Funktion("Zahl: %d", i);Und da geht es eben nicht.
mfg
-
Und schon bist du im falschen Unterforum. Hier wird C++ gesprichen.

Aber um das zu machen, was du möchtest ist die ellipse da.
Siehe z.B hier:
http://linuxprograms.wordpress.com/2008/03/07/c-ellipsis-operator-printf/
-
In C wurde dafür ein "Ellipsis-Parameter" verwendet und dann über die va_* die Parameter geholt. In C++ kannst du das zwar ebenfalls tun, allerdings gibts noch Alterativen wie diverse Vorteile bieten (Typsicherheit z.B.): std::string, std::stringstream, ...
Boost hat übrigens ne schöne (C++) Lösung für Formatierung: http://www.boost.org/doc/libs/1_41_0/libs/format/index.html
-
Den ellipsis-operator kenn ich schon, aber wie verwende ich ihn? Bin wie gesagt eher noch anfänger

mfg
-
Schau mal hier:
http://www.cplusplus.com/reference/clibrary/cstdarg/va_start/
-
Habs geschafft, danke
mfg