printf-Problem
-
Hi!
Ich habe hier folgende print-Anweisung:
printf("%3i|%3i|%3i|%5s\n",e.get_id(),e.begins_at(),e.ends_at(),e.get_left_hand_side());Wenn ich das so mache steht an der letzten Position immer "(null)".
Wenn ich e.get_left_hand_side() zuvor normal auf cout ausgebe, dann steht der korrekte Wert da.
Es scheint also irgendwie an der Ausgabe zu hapern.
Was mache ich falsch?
e.get_left_hand_side() ist wie folgt definiert:string get_left_hand_side() const;und gibt ein Attriut einer Klasse zurück.
Irgendwo muss ja der Fehler sein...
Grüße, pktm
-
printf kommt nicht mit Klassen zurecht, also auch nicht mit std(?)::string.
Abhilfe schafft:
e.get_left_hand_side().c_str()um ein konstantes char-array zu erhalten.
Wobei ich es schöner fände, wenn man die Ausgabestreams (cerr, clog, cout) nutzen würde.
-
The-Kenny schrieb:
printf kommt nicht mit Klassen zurecht, also auch nicht mit std(?)::string.
Abhilfe schafft:
e.get_left_hand_side().c_str()um ein konstantes char-array zu erhalten.
Wobei ich es schöner fände, wenn man die Ausgabestreams (cerr, clog, cout) nutzen würde.
Aha!
Aber wie kann ich bei einem Stream die Abstände einstellen? Kann ich cout z.B. auch eine Formatvorlage mitgeben?
Grüße, pktm